Update constraint setup to use Method#to_proc
Update Options#options to output all set options
Change constraint to be a protected method

* Cannot be called on the class directly, except by other instances
  of that class.
Move internal method into private scope
Add Axiom::Types::Type.new

* This method acts like a factory and returns subtypes having the
  same or tighter constraints.
Change Axiom::Types::Type.constraint to be a command method

* The constraint method is not needed as an accessor in the external
  system so change it to a command method so it can be chained.
Add README with example code
Add TODO notes with constraint ideas