handle Module
Range
Regexp
handle Time and all positive integers
Date and DateTime

* #== is too laxist
handle utc_offset in Time
methods
let's be consistent and always use arrays

* also more efficient than a :__class__ Hash entry
reduce space usage by making array length part of the extended type

* ary extended types now carry the implicit knowledge of their ary size
* 411 => 388 total
* smart use of Proc#arity
rename unpack => load, pack => dump in extended types
more declarative way of packing for ary-style

* slight augmentation of size since fractions and integers are separated:
  388 => 392
simplify to one single EXTENDED_TYPES Hash

* 392 => 399 because we have the additional fixstr tag before str data
Reactivate one element ary as a string optimization

* Back to 392
optimize space by using fixext types

* 392 => 384
* Unfortunately, this is only for power-of-2 sizes,
  I wish it would be for 0-15 like fixarray/fixmap.
handle binary string
handle Encoding
handle String with other encodings
reorder