Restructure the DB to prepare for the new data models

Add relationship between Organizations, Locations, and Languages

Refactor search to be able to search in both Organization and Location models
at the same time via the mongoid_search gem

Update admin interface to support these new relationships

Update load_data rake task to support new data structure
Enumerize languages in locations instead of using HABTM

Having a separate endpoint and slow database queries via a HABTM relationship does not make sense for a list of languages whose name is the only attribute we're interested in.
Set up initial admin interface to support new DB structure

Use rails_admin instead of activeadmin. It works much better with Mongoid.

Use CanCan to restrict access to User and Admin models and to disallow deletion of records.

Add Twitter Bootstrap to style developer portal

Use mongoid_search for full text search. It searches on the organization's name, the program's name and description, and the location's keywords. Search results currently only contain location information, plus the program name.

Modify hash validator to support new phones structure

Remove developer portal navigation for the /admin path

Update tests and rake task to support new DB and API structure
Configure words to ignore in full text search

+ Add script to rename CIP keywords from JSON that has the mapping of CIP keyword to OpenEligibility taxonomy
Add support for nested categories via mongoid_nested_set

https://github.com/55ideas/mongoid_nested_set
Add rake task to create OpenEligibility categories
Configure mongoid_search to match all search terms

Using :any gave too many results, many of which weren't necessarily relevant.

Also set minimum word size to 4, so that it doesn't index words like "a", "and", "to", "of", etc..
Refactor API to use Grape & remodel DB structure

Lots of changes:

- Grape instead of RocketPants for API design
- Documentation via Swagger instead of Apiary. Docs are auto-generated from the API code in app/api/ohana.rb
- ROAR for representations
- Elasticsearch instead of mongoid_search
- Organize tests into components
Update admin interface to support new DB structure
Fix link to API docs in README
Update services representation in Elasticsearch results
Upgrade devise to 3.0.3
Upgrade newrelic_rpm to 3.6.6.147
Upgrade database_cleaner to 1.1.1
Upgrade mongoid-rspec to 1.9.0
Upgrade metric_fu to 4.4.0
Add initial support for entering schedules in admin interface

For now, you can only enter one open and close time per day.
Update rake task to upload latest CIP dataset
Update search documentation
Fix X-Total count for Tire search results

In link_header.rb, the collection that gets passed to the method is either a Mongoid::Criteria (when accessing the /organizations, /locations, or /services endpoints), or Tire::Results:Collection when getting search results. The former responds to "count" whereas the latter responds to "total_entries."