Fix Time encoding

Hi,

This is a resulting of a yak shave for the following issue:
https://github.com/mongoid/mongoid/pull/3563

The previous code was causing rounding errors. The result for us was when using ```Mongoid::Timestamps``` in embedded documents, the query sent to mongodb when deleting documents is a ```$pullAll``` with its ```created_at``` and ```updated_at``` fields which were badly BSON encoded. For every documents where the rounding error occurred, they were never deleted with a ```delete_all``` or ```destroy_all``` method call.

The Time I used in the updated spec is one causing this rounding error. You can test the old line bson encoding line with it to see the test actually fail.

This also fixes DateTime as it is converted to a Time when to_bson is called on it.

This debug session has occurred in an @openhack event taking place in [Quebec city](http://openhack.github.io/quebec/). Hat tip to @jpbougie for identifying the issue and fixing it.