More Complex Options

Expand the API to include `assemble_with_options` (maybe with a better name). It takes a name and then a hash of options like `coerce`, `default`, `aliases`. Open to other ideas, or better names for shit.