Custom filtering

Added option for custom filtering in table sorter.
Also only filter items when needed instead of every render

3 options
- custom filter function
```js
customFilter: function(filterText, data) {
  return data < filterText;
},
```
- custom data used to filter
```js
customFilterData: function(bill) {
  return bill.user;
},
```
- custom data using the cellGenerator method
```js
createdDate: {
  name: __("transaction::createdDate"),
  customFilterData: true,
  cellGenerator: function(bill, i) {
    return formatDate(bill.createdDate, "LLL");
  }
},
```


<!---
@huboard:{"order":2.25,"milestone_order":21,"custom_state":""}
-->

Why isn't `link` declared outside of this if/else?