Extended types for DDP

This is a first pass for now; it doesn't support all the types
we will eventually support, and it may be in flux in terms of the exact
format for a little while yet.  Also I need to write tests.

But the outline is there.
Various tests for new data types in DDP:

Test for a document with a date; full stack

Test and fix for method invocation with a Date

Tests for literal
Client-side ObjectId object
ObjectId conversion to/from DDP ids
ObjectID as a value in DDP
Force all keys inside minimongo to be strings

... but preserve other types on the outside of minimongo.
So far passing all current regression tests, but moment of truth
when we switch over to ObjectID yet to come.
All tests now pass after switching the defualt Collection to ObjectID

**Caveats:**
 - I have not written any more tests; I perhaps should
 - I have not yet written any code to keep current Collections from mixing
   strings and ObjectIDs
 - I don't actually know if the default should be ObjectID.  I should discuss
    with people about this.
Documented what methods custom types should have if they are going to work
Self-reviewing my code makes me want to fix problems
Now switching actual collections over to using ObjectID

Previously, had only switched over the default for minimongo --
so there's lots of stuff that actually didn't work.

With this change, two tests are still failing; I will fix them and
then do some more cleanup tomorrow.
ObjectID collections now an option not the default
Fix tinytest include to use _.isEqual
Moving code around; renamed idToDDP etc to idStringify etc
Export idParse and idStringify in Meteor
Date now works in session var
Hacked objectid in there, though not ideally
Glasser's comments on my diff

* Lots of small things like whitespace fixes
* change the way adding a custom type works
First draft of docs for types.
Fixing up docs, making ObjectID consistent with Node api
ObjectID detection: Use existence of Meteor.Collection, not isClient.