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.

There are still some things that can be tweaked, but this is the core functionality.

All tests pass.