Add Organization fields per v0.2 of HSDS

This commit adds the following fields to the Organizations table:

- alternate_name
- date_incorporated
- description
- email
- legal_status
- tax_id
- tax_status
- website

The `urls` field has been removed because it has been replaced by the
singular `website` field.

All of the new fields are exposed by the API except `legal_status`,
`tax_status`, and `tax_id`.

All of the new fields can be updated or added to a new organization via
the admin interface or via writing to the API.

The description field is required per the OpenReferral spec.

The following fields defined in the spec have not been added because
it’s not clear whether or not they belong in the Organizations table or
the Locations table:

- license
- accreditation
- funding
Add alternate name and virtual fields to Location.

The `virtual` field is a boolean meant to specify whether or not the
location has a physical address. This will allow “virtual” locations to
be saved without requiring them to have an address. This validation
change will be implemented in a separate commit.

In addition to adding those two new fields, I cleaned up the Location
model, and fixed two issues with geocoding:

- When an address was removed from a location, the location’s
coordinates weren’t being reset. The spec that was testing this was not
written properly. This has now been moved to an `after_destroy`
callback in the Address model, so that this only gets called when
necessary, as opposed to every time the Location is validated.

- When an address was updated via the API, the location’s coordinates
were not being updated because the location itself wasn’t being saved
(touching does not trigger `after_validation`).
Add admin support for location alternate name.

The location’s alternate name field can now be edited via the admin
interface.

The alternate name is also now exposed when querying a specific
location, but not in the search endpoint.
Add admin support for virtual field.

Since the virtual field is meant to identify locations that don’t have
a physical address, the validations were updated to allow virtual
locations to be created and updated without an address.
Add virtual field to fix loading of sample data.

Locations that don’t have an address must now have their `virtual`
attribute set to “true”.
Add fields to Address and MailAddress.

Added:
- street_2 (optional)
- country_code (required)

Renamed:
- street to street_1
- zip to postal_code
Drop Faxes table & add fields to Phones

Instead of having a separate table for Faxes, we can use the
`number_type` field in the Phones table to identify a fax.

The `number_type` field, which is now required, accepts one of four
values:
- fax
- hotline
- tty
- voice

The optional `country_prefix` field has been added to the Phones table.
Valid values are country dialing codes, including the `+`, such as
`+212` for Morocco.
Add CRUD support for a Contact's phones.

Previously, phone and fax attributes were directly part of a Contact’s
attributes, which isn’t semantically correct. Now, a Contact has many
Phones via the Phones table.

To reduce clutter on the Edit Location page in the admin interface,
editing Contacts has been moved to a separate page.
Merge pull request #235 from codeforamerica/add-additional-fields

Add additional fields per v0.2 of HSDS