Feature/keys

Issues in this Pull request:

- MPH-21: Add support for UniqueKey definitions at DSL level.
- MPH-22: Restrict all implicit conversions to the respective query type phantom type definition.
- MPH-30: Prevent defining ForeignKey relationships from one table to another table's non value columns
- MPH-33: Add support for all INT family data columns as per the MySQL specification.
- Added a basic design description on the README.