Refactor tests part3 - test tags, coverage, additional tests

Follow Django's example and **test the template tags** themselves, not the Node classes. Users use the tags so we should test them that way. Also, I think this makes it clearer what is being tested because typing out the templates tags is the "natural" behavior. Testing Nodes means you need to understand their implementation.

This also **decouples** the tests from the implementation of the tags. Code **coverage** is increased to 100%. Additionally adds **tests for filtering** the obj and template names, i.e. `{% render_list listvar|slice:“:3” “template” %}`.


*Note:* This PR changes both tests and code, but the code (for `layout_helpers.py`) is only changed in a single commit, that commit does not change test code and that commit fixes the tests that were introduced to break on purpose in the previous commit. 7e6d5c9: new tests that that break. ebe183d: the commit to fix the tests.