Merge

Opening for feedback.

Tests are all passing except for a few strange anomalies that typically happen between 8PM and 12AM for me. I haven't even started manual testing yet - mostly I wanted to get basics working. However, the changes I needed to make to the unit tests (mostly related to caching and settings) imply that everything should look pretty good. I know I'll have to do some messing around with the CompanyUser db_table/columns, but that's the only real problem I forsee.

As far as deployment goes, the only thing that should need to change is the settings file. Because settings.prod.py and friends shared the same name in apps I had to namespace-ish them. We might have to mess with celery, but I'm not 100% sure about that.

I'm not too thrilled with the way I had to do seo/tests/setup.py. I'd be interested in suggestions for other ways to do that. Other than that I'm pretty happy with things, surprisingly.
http://codepad.org/aQXo8Vkg

Essentially, if this is a pattern we repeat, we could define:
````python
first_of = lambda mapping, iterable: reduce(lambda x, y: mapping.get(x) or mapping.get(y), terable)

first_of(kwargs, ['password', 'password1'])
```

If it's not a common pattern, I still think that:
```python
password = kwargs.get('password') or kwargs.get('password1')
````
Is clearer than an explicit loop which terminates early.