Collatable now handles floating-point numbers correctly

They're now written in a form that collates. Unfortunately this means
_all_ numbers are now written as floats, which means they all encode to
8 bytes plus the tag byte.
THIS CHANGES THE ENCODING FORMAT! PREVIOUSLY ENCODED COLLATABLE DATA
WILL NOT DECODE! THIS MEANS EXISTING VIEW INDEXES ARE INVALID!
For couchbase/couchbase-lite-ios#483
Added version checking to MapReduceIndex

Since Collatable has changed the format of numeric values, this makes
all existing indexes unreadable. I added a version field to the state
info so this can be detected and the index contents invalidated.