CDK-316: Converted Constraints to implement Serializable and added logic...

... for serializing its predicates.  Also added tests to verify the serialization.

CDK-316: Updated formatting for the code and added support for classes that are not Avro or Serializable using Avro Reflect

CDK 316: Fixed tests to actually test serialization. Fixed issue with Avro serialization and Range serialization


This should address the code review comments from https://github.com/kite-sdk/kite/pull/19