Registers boolean jinja filters as jinja tests

Jinja2 has separate notions of [Filters](http://jinja.pocoo.org/docs/templates/#filters) and [Tests](http://jinja.pocoo.org/docs/templates/#tests), but Ansible currently registers all of its Jinja2 extensions as filters, even those that return boolean values.

This commit ensures that the boolean-returning filters are also registered as tests, and provides hooks for user plugins to create their own tests using a filter_plugin.

It also updates the documentation for jinja test functionality.
Should `CALL_WHITELIST` be a set? It only seems to be used with the `in` operator below. I didn't want to change more than necessary here, but I'm happy to change this to be a set if you think it's a good idea.