Heavy refactor, drop most validation

Made some serious simplifying assumptions:

- hard-coded the values for logical operators ('and', 'or', 'not')
  instead of allowing users to specify one or more values for each.
- assume users won't try to pass None for model, let it break when
  it will.
- clean up the _build function to use less lambdas
- drop unicode attempts everywhere, let users sanitize input.
  Removing the _unicodify method felt awesome.
- stop checking that all the right type constraints are there,
  stop checking for duplicate definitions.  We're all consenting
  adults here.
- drop builder properties for constraints since they were used in one
  method.

Still TODO:

- Cut out the _is_real_sequence method and come up with something
  more pythonic.  maybe don't check at all.
- Get rid of the type_constraints entirely, and figure out type and
  nullability from the model column we're operating on.  Going to need
  to jump into some sqlalchemy for this...