Refactor of ChangeList form classes.

Backwards incompatible refactor of `SortForm` and `SearchForm` and removal of `FilterForm`.

- Remove `pre_sort`, `pre_search`, `post_sort`, `post_search` hooks.
- Refactor the `SortForm.headers`.  Less spagetti code and much easier to understand.

I don't think this pull should necessarily be directly merged.  Any project using these forms will likely need minor modifications due to the backwards incompatibilities.  Same with template code that references the headers.  Feedback?