Fix FloatTypeTest on 32 bit platform.

One of the test examples required higher precision than is possible on a
32bit platform.
Check number of required params when considering if something's a getter or setter, rather than actual number of params.
Merge remote-tracking branch 'upstream/master' into master_uswrite
Made type handling more consistent.
Added strict type checking mode (defaults on), where data coming from JSON is expected to be the right type. Can override for entire decoding process, or on a property by property basis.
Outbound type checking is lax (this is PHP afterall!)