[PD-338] Feature multiple locations

## Description
Don't let the monsterous number of commits scare you. Everything in this PR was already reviewed in PRs #939, #937, and #913. Should be a matter of a quick once-over to see if we missed anything while reviewing those others.

This adds the ability for users to have multiple locations, with each of those potentially being shared between contacts. On deletion of a contact, locations are only deleted if not shared by other contacts. 

## Migrations
Once this is master, we should *incrementally* run migrations. Once [0002](https://github.com/DirectEmployers/MyJobs/pull/941/files#diff-3) is added, we can run the `update_locations.py` script to convert all addresses into locations. Once we've verified doing so is successful, it should be safe to run [0003](https://github.com/DirectEmployers/MyJobs/pull/941/files#diff-4).

As a quick run down, these migrations move the address fields from contact to their own location model as a many-to-many

## Tests
~~The test that failed for jenkins (mysearches.tests.test_models) passed locally, and the only other failure I get is a known issue that's already in master.~~ Tests are passing.