clean up grid-model
Merge branch 'get-started-client' of github.com:ericf/pure-site into ericf-get-started-client

Conflicts:
	public/js/models/grid-model.js
Clean up grid-input-view

* Remove globals
* Listen to `change` events instead of `focus`/`blur`
* Get models by index, instead of by ID
add data- attributes to rows.handlebars
clean up grid-tab-view
clean up grid-output-view
make data-attributes consistent
dont empty out the table list on grid-input-view.render()
store empty column value as `undefined`
comment out getReduced() for now
Update gridModel in route handler

This is done to make the back button work. The setAttrs() within the
route handler does not trigger the model's change event callback from
firing.
Update grid-input-view to work with back button updates

* Remove additional rows on render()
* Dont update the gridModel if a `key` is added without a `value`
fix row removal code
Update /start/ route code to be clearer between start vs. grid options
Update public/start.js to use more descriptive var names for clarity
Add expand/reduce CSS Media Query support MQ Model
Update client /start/ views to reuse tab events and tweak formatting

The GridTabView base class now defines the tab related UI event and will register it, freeing up the subclasses from needing to know about this.

I also tweaked some of the formatting for consistency throughout this repo and added missing `'use strict';`
Simplify GridTabView code
Tweak HTML in views and add more input validation attributes
Add `update` event to GridModel which coalesces all relevant changes