Preserve milliseconds when persisting Time and DateTime.

This time stuff is a mess. I'm not happy with my solution.
Although it seems to work. One of the things that caused me trouble
was Time#usec which should return the microseconds but seem to return
the milliseconds:

t = Time.now        #=> 2007-11-19 08:03:26 -0600
"%10.6f" % t.to_f   #=> "1195481006.775195"
t.usec              #=> 775195

Thatswhy it is not usable in the examples.

Also I tried to archive the same behavior requested for
Time in issue #64 for DateTime because its really the same.

Any Feedback is really appreciated.

Conflicts:

	lib/mongoid/fields/internal/timekeeping.rb
	spec/unit/mongoid/fields/internal/time_spec.rb
Remove failing test.

This example just don't work any more since DateTime stores also
millisecond, because milliseconds aren't part of DateTime#to_s.
You could rewrite it to:

  Person.where(:lunch_time.gt => time).should eq([ person ])

but that doesn't fit very well imho.

Conflicts:

	spec/functional/mongoid/criterion/inclusion_spec.rb
Wait a sec, why do we strip at all?? Its not worth it!
Restore tests to ensure nothing is stripped.
Merge pull request #1 from ErisExchange/i0rek-time

backport millisecond time precision from mongoid master