Making full use of 2.10 scala reflection api.
Adding support for Enumeration SerDe.

Some of the changes on CaseClass SerDe makes the framework a bit different than before, as:
- Impartial json parse, will lookup for the better constructor, and only fail if a non-nullable field(eg: AnyVal fields) don't exists on json.
- Fields that are not in the constructor will be deserialized/serialized (unless its immutable)

The idea is to be possible serialize/deserialize any user defined class, not just case class.

 All tests are passing, but some new behavious need better testing.