Sort categories by oe_id

To make it easier for clients to display a service's categories in the proper
nested order, categories should be sorted by oe_id by default.
Merge pull request #155 from codeforamerica/order-categories

Sort categories by oe_id
Add number_type column to Phones table

Note that in ActiveRecord, naming a table column "type" implies you're using Single Table Inheritance. You can override that, but I thought it would be easier to just use a different name for the column.
Merge pull request #156 from codeforamerica/add-number_type-to-phones

Add number_type column to Phones table
Replace hyphens with underscores in DB names

The PG DB naming convention is to use lowercase and underscores for separation, but you can use hyphens, as long as you surround the DB name in quotes. Rails automatically adds the quotes for you, but Travis does not. So, to make it easier and consistent all around, let's use underscores everywhere.
Update staging.rb to match production.rb
Use db:structure:load instead of db:schema:load on Heroku

This change was made earlier for the local setup, but I forgot to apply it to Heroku as well.

db:schema:load reads "schema.rb", but we're using "structure.sql" now because we have migrations that execute SQL statements that Ruby can't handle.
Use underscores in Vagrant DB name
Optimize queries for org_name and category

When a search is performed for org_name and/or category, the initial query uses a joins, but when the JSON is created, those same tables that were joined were being "included" again via a slow query.

This commit adds logic to check for the presence of the org_name or category parameter, and removes the corresponding table from the "includes" statement.
All full-text search for org name

Previously, you had to supply the exact organization name to get a match when searching with the "org_name" parameter. Now you can find organizations by only specifying some of the words in the name.

If multiple words are submitted, the search will use an `AND` to find results that match all words. So, given 2 org names, "Peninsula Family Service" and "Peninsula Volunteers", "api/search?org_name=peninsula service" will only return locations that belong to "Peninsula Family Service".
Merge pull request #160 from codeforamerica/full-text-search-for-org-name

Add full-text search for org name
Remove Redis dependency

Redis was only being used to cache geocoding requests, and is not required to run the app in any environment. It should be up to the user to decide whether or not they want to cache geocoding requests, and which cache store to use.
Merge pull request #161 from codeforamerica/remove-redis

Remove Redis dependency
Remove unused code
Merge pull request #162 from codeforamerica/remove-unused-code

Remove unused code
Improve installation process and update documentation

Move installation docs to new INSTALL.md
Move contribution section to new CONTRIBUTING.md
Update instructions in application.example.yml
Update instructions in settings.yml
Add new scripts and update old ones to facilitate installation and deployment

Instead of exiting the DB population task, allow all valid entries to go through,
and capture invalid ones in a new file so they can be easily identified and fixed.
Merge pull request #163 from codeforamerica/installation-docs

Improve installation process and update documentation
Add user name to Devise permitted attributes. Fixes #164.
Merge pull request #165 from codeforamerica/164-fix-devise-bug

Add user name to Devise permitted attributes. Fixes #164.
Fix typo in production.rb that caused user sign up to fail