Fix support for multiple filters, add support for a custom filter.condition function.

Messages from relevant squashed commits:

    Remove unnecessary term attribute from filter.

    When filtering is enabled for a column but no filter or filters
    property is set on the columnDef, a default filter object is
    added to the column. This default object had an unnecessary
    "term" property set to an empty string. This commit removes it.

    Update API docs to reflect filter changes.

    Also add a new definition for ui.grid.class:GridOptions.columnDef.filter
    to docblocks, however this is not getting picked up by ngDoc. Perhaps
    this is something someone else can help me figure out. Or it is not
    something that is necessary, in which case we can take it out.

    Add placeholder option to filter definition.

    This allows for the placeholder attribute to be
    added to the filter input element.

    Add support for multiple filter fields.

    This seems to have been the original plan for column filters.
    A slight API change was necessary for the column definition object,
    which I will properly document in an upcoming commit.

    Fix #1538. Passing correct filter model to stripTerm.

    Add support for a custom filter.condition function.

    Instead of passing a uiGridConstants.filter.CONSTANT or RegExp
    as a filter.condition, a user may pass a custom function that
    will be run for each row. The function gets the following
    arguments passed to it: searchTerm, cellValue, row, column.
    It should return true if that row passes the filter, false if
    it does not.
scrollTo method completed on cellNav feature

Including unit test extensions, and additions to tutorial 202.
enableScrollbars in gridOptions
fix to make the landing page legible on mobile
Merge pull request #1552 from is/enable-scrollbars-option

enableScrollbars in gridOptions
bugfix(Pinning): Pinning styles applied wrong

The custom CSS for pinned containers was not set up right and thus the
canvas and viewports did not have proper sizing. Specifically, the pinned
container canvas size was too small, causing scrollTop to be set to an
incorrect value, and making scrolling look out of sync.

This change fixes the CSS and makes all the viewports and canvas size
properly. I've had to alter the class names a bit. There is no longer a
simple .left or .right. These classes have the property prefix to prevent
any collisions in user apps.
bugfix(Header): Sortable class on wrong element
Bugfix(Column Menu): Fix positioning

Column menu should now position correctly with pinned containers and
containers that are horizontally scrolled.

NOTE: There is still an issue with pinning very large columns, causing the
grid to wrap strangely.
Merge pull request #1568 from KiwiNiksta/responsive

fix to make the landing page legible on mobile
WIP: Making responsive viewing of homepage better
feat(Selection): Updates

* Make CSS classes snake-case to stay consistent with established standards
* Add OK icon from fontello to ui-grid icon set config
* Make unselected row header have a low-opacity check mark to hint user
  what the available action is.
Change uiGridRowHeaderCell css to snake-case
Add CSS style note

[skip-ci]
Add missing tutorial number to infinite scroll tut

[skip-ci]
RowEdit feature, row-by-row save to server

Provide a feature, tutorial and unit tests for rowEdit feature.

Seeks to save row-at-a-time, including stopping editing a row
that is currently saving, showing error rows in red, and noticing
when a user is still editing the same row, and not saving until
they move off that row.

Includes three changes in non-row-edit files:

- add beginCellEdit and cancelCellEdit events to the edit feature,
rather than listening to non-public api calls
- modify edit feature to not allow editing of a row that is currently
saving (one line change)
- add a `renderingComplete` event to core, and register that event
immediately the api is instantiated, allowing features and external
users to register for that event in their initialize block.  This
event does the same thing as onRegisterApi, but is multi-user/broadcast,
rather than only accessible to a single module.  (Otherwise if rowEdit
used onRegisterApi it was no longer available to the end-user to use)
feat(AutoResize): Adding auto-resize feature.

* Also made queueRefresh() return a promise so it can be chained off of

* Fix: wrong function name on getRowIdentity. Would affect debugging only

* Also turn tests back on!
Merge pull request #1574 from angular-ui/feat-auto-resize

feat(AutoResize): Adding auto-resize feature.
Fix: Sorting with disabled ColMenu throws JS error

If column menu is disabled in options and you click on a column to
sort, this JS erro occurs:

TypeError: Cannot read property 'hideMenu' of undefined
In ui-grid-unstable its in line 904:
uiGridCtrl.columnMenuScope.hideMenu();

'columnMenuScope' is initialised in 'uiGridColumnMenu.link()' which does not
seem to get executed if menu was disabled.  Maybe it's because uiGridColumnMenu
is a directive, and it is only used if menu is enabled.

See #1555, comments
Fix #1565: GridApi, bind methods of feature 'core' to the grid
Fixed braces around param types