Populate database with example data.
Use Puma as Ruby webserver instead of Webrick. It’s much faster & multithreaded.
Add Ember layout content.

* Ember will insert itself at the end of the body tag by default, but you can
specifically tell Ember where to render with 'rootElement'.
Use Ember Data to handle data, providing DS.Model object.

* Ember Data is the default adapter.
* Ember will automatically read in the JSON API’s first_name to firstName, and
etc. across the rest of the attributes.
List all leads.

* Create a route object to fetch all records.
* Create custom property on the model to display on template.
* Sort leads on the controller, by first and last name.
Show lead's info.

* Add a resource to show a specific lead. Since the list of leads is still
remain present on the page when shows a lead, this resource should be nested
under the leads resource.
* Create a route object to pull down the specific lead.
* In the template, the single quote (') leaves a trailing whitespace after the line.
* The outlet tag placed at the end of the template contains the lead's info, since
the lead route is nested under leads.
Allow user to edit status and notes in place.

* Create an array of statuses.
* The 'click' attribute in the form specifies a function to call when user click the submit
button. Ember expects the controller to define this function, that must be within 'actions'
since it's being called from a template action.
* The controller should be an ObjectController because it wraps a single lead model.
* save() will actually send an AJAX PUT request to our Rails API, with 'api/v1/leads/<id>'.
Prompt the user to save changes before switching to a different lead.

* More info: https://github.com/vicramon/ember-tutorial/blob/master/chapters/context-did-change.md
Remove 'model' in templates, ObjectController will proxy the model.
Allow user to edit leads info.

* Since the 'route' is nested inside a 'resource', Ember expects the
template to be inside a subdirectory with the name of the resource.
* The 'edit' route is nested under 'lead' so Ember renders the template
into an 'outlet' tag inside the 'lead' template.
* Set an 'isEditing' property on the controller to false by default.
Allow user to destroy leads.
Allow user to add new leads.

* New lead is a 'route' and not a 'resource' because it does not need to
load an existing model in the system.
* By keeping the attributes in 'fields' and waiting until the action to
create a record is called, the record won’t appear in the list until the
user has chosen to create it. This property is set to an empty object in
the route so that it’s reset every time the user visit the new lead route.
* The template goes in 'templates/leads/' because it’s a 'route' nested
under a 'resource' named 'leads'.
* Perform custom validations on first and last name.
Allow user to search leads by full name.
Add gem 'rails_12factor' to deploy to Heroku. Not required.