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.