Add ISerializer and comments.
Fix code contracts in release mode.
Merge pull request #29 from methylium/code-contracts

Enable code contracts in release mode.