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