Add state field to initial sign up form MJ-262

This was much larger than expected.

I tore out the previous way of making forms and switched to the native Django ModelForms, this is much more concise and has a lot of built in advantages.

Added CSS to make everything look pretty on the page.

All tests pass.