Spec: Proposed changes to implement freeze/thaw hook mechanism

Make sure to compare against the logic for CBOR hooks which is
sufficiently generic to serve multiple serializers. Right now, the only
incompatibility is that for Sereal, FREEZE needs to return a single data
structure instead of a list. That is quite a bit more efficient for
simple data structures and also easier on the implementation,
particularly for more static languages than Perl.

Comments welcome. This is a proposal.
Generate spec/tag changes appropriately

To be squashed with previous commit ultimately.
Perl: Implement FREEZE/THAW interface in encoder and decoder
Perl: Simple freeze/thaw cb benchmark

Hint: Lots faster without callback on serialization.
For deserialization, depending on the object, custom serialization
may actually allow deserialization to be more efficient than the
generic Sereal deserialization in some cases.
Perl: Reorder option docs in Encoder

Move an option further down whose use was basically discouraged anyway.
Perl: Update freeze/thaw benchmark

This adds a serialization case of objects without FREEZE hook but with
the FREEZE/THAW feature enabled. This is the cb_nocbdata case below:

                              Rate     cb cb_nocbdata  no_cb no_cb_nocbdata
  cb             17886.5+-0.0016/s     --      -72.8% -90.2%         -90.3%
  cb_nocbdata       65716.4+-4.1/s 267.4%          -- -63.9%         -64.3%
  no_cb                181839+-0/s 916.6%      176.7%     --          -1.1%
  no_cb_nocbdata   183939+-0.055/s 928.4%      179.9%   1.2%             --

This means that with the freeze_callbacks option set, simply attempting
to look up the FREEZE method in a class repeatedly can be a significant
slowdown. It remains to be seen whether a custom hash based cache for
"class name => hook (or NULL)" would be faster than the method lookup.
That cache isn't implemented yet, would potentially introduce bugs in
weird corner cases (callbacks modifying FREEZE methods, WTF?) and is
generally somewhat unlikely to speed things up.

So this is likely it: If you use freeze callbacks, you pay for it a
little bit. (This is a worst-case benchmark.) But that's ok. Because you
don't have to and because all other serializers that offer this
interface are A LOT slower still. :)
Perl: Document FREEZE/THAW mechanism in encoder docs
Perl: minimal FREEZE/THAW docs for decoder