Expose the response headers

In order to access headers in a browser, we need to expose them as per
CORS protocol.

Fix the spec name
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
Merge pull request #226 from volkanunsal/patch-1

expose the hypermedia headers in response when using CORS
Remove unused custom pagination HTTP headers.

Only `Link` and `X-Total-Count` are useful for clients such as Ohana
Web Search. Originally, the others (such as `X-Total-Pages` and
`X-Current-Page`) were added to help implement pagination in Ohana Web
Search, but we realized that we could just use existing tools such as
the `kaminari` gem to do the pagination for us.
Merge pull request #237 from codeforamerica/remove-unused-http-headers

Remove unused custom pagination HTTP headers.
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
adds sign in link
provide an alt route to get to dashboard for testing purposes
up log levels
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.
try to force admin/ route to point to dashboard index
correct get route
try admin dash route outside of namespace
hardcodes admin path
return to path set by env var
fix path