Josh Sheehan scored a dramatic stoppage-time winner to earn Bolton a thrilling League One victory over struggling Rotherham.