Skip Singleton stuff
Cosmetics to appease the 4-space-indent mafia
Fix company name
Removed the initializer stuff. As Steffen mentioned it can done by the caller code
Going back to use code refs instead of strings for the serializers.

I thought strings instead of code refs would give us a performance
boost, but it happens that it is completely negligible and I don't
like the idea of expecting code strings from subclasses or users
of the module. With code refs errors are caught on compile time.

Benchmark between the 2 versions:

    $ perl -Ilib benchmark.pl
    * object construction
              Rate  string coderef
    string  1936/s      --     -3%
    coderef 1998/s      3%      --
    * deserialize empty hash
                Rate coderef  string
    coderef 340787/s      --     -7%
    string  368223/s      8%      --
    * deserialize huge event
              Rate coderef  string
    coderef 8587/s      --     -1%
    string  8654/s      1%      --
    * serialize empty hash
                Rate coderef  string
    coderef 333041/s      --     -6%
    string  356013/s      7%      --
    * serialize huge event
               Rate  string coderef
    string  19634/s      --     -1%
    coderef 19829/s      1%      --

There's a very small impact with very small datastructers
(empty string in this example), but almost no difference with
bigger ones.