better quote submission form

* all one form
* most transformations, and validation, happen client-side
* works, just needs some better UI