Added new encoding mode - #unknownAsNil and #loose.

- If encodeMode is #unknownAsNil, unknown types(classes) will be encoded as nil values.
- If encodeMode is #loose, #asMpConverted will be sent to the unknown class's instances. You can override the method to convert your instance as MessagePack-compatible value. For example, this mode allows encoding IdentityDictionary as MessagePack map.
Salvaged some wrongly merged commits
Merge pull request #1 from msgpack/develop

Added new encoding mode - #unknownAsNil and #loose.