Updates to ngDoc and tutorial

There are a bundle of minor changes to documentation:
 - Update to the filter tutorial to show how to programmatically set a filter
 - Break out the GridColumn properties to be proper properties in the ngDoc
 - Update GridOptions functions to be methods rather than properties in the ngDoc
 - Add to the ngDoc a number of GridOptions properties that existed in the code and looked like they perhaps could be overridden by a user, and therefore should be visible in the API

There is a larger conceptual change that is probably subject of discussion.  I've created a new GridOptions.columnDef object that I imagined being used to describe all the different options that can be set on a columnDef.  Many of these options were actually described in the ngDoc for GridColumn, I've left them in GridColumn, but by adding an additional @propertyOf, I've also loaded them onto the columnDef documentation.  I've also done similarly for a handful of properties that I found in the ui.grid.edit.colDef.

The questions that this raises are:
 - Is this how we'd want to document columnDefs (and gridOptions) - do we want a single place where all the options can be found
 - If we do (I'd like to), do we need a way to tell people which feature this option goes with - so there's no point in someone setting editableCellTemplate on a column if they haven't enabled the editable-grid feature.  Can this be as simple as a standard of putting the plugin name in the description in a similar way to the (optional) and (mandatory) that already appear in some documentation?