Adding 'new' filter implementation.

- Filtering will remain at the collection level, where it belongs, however due to syntactic reasons, filters will get set on the API object from the end user, and then passed onto the proper collection.

For example:
    $api->addFilter('some_method::some_function', array('arg1', 'arg2'))
        ->loadTickets('space-id')

- As for adding filters, the first argument is anything that will pass is_callable,
meaning it can be a method on the collection itself, given it's public, or even a closure!

- On top of that, filtering logic has been moved from Assemblas Abstract Collection to the Core_Collection class.
Adding tests, incomplete tests.
Adding tests.
Fixing custom fields/ticket models.
Fixing up requests, added tested to a number of ticket API calls.
Cleaning up ticket/customfields models.
Adding ticket status model and collection.
Fixing args and responses for post/put/delete.
Adding configs for switching over ticket statuses - all tested and working.
Adding wiki page model/collection.
Adding activity model/collection.
Adding user role model/collection.
Adding document model/collection.
Adding space tool model/collection.
Adding merge request model/collection.
Adding merge request comment model/collection.
Adding merge request version model/collection.
Adding merge request version vote model/collection.
Adding merge request version comment model/collection.
Adding standup report model/collection.