Start extracting set() into a trait.
Rename trait and implement in Controller.
Implement ViewVarsTrait in other classes.

Both TemplateTask and View has the same copy + paste code.
Remove duplicate property names & fix tests.
Convert array syntax.
Fix test failures.

Fix test failures related to ViewVarsTrait.
Remove stupid parameter names.
Clean up comments.
Update copyright to match new style.
Add tests for ViewVarsTrait.
Remove copy + paste tests.

These tests are redundant as there are tests for the trait now.
Merge pull request #1154 from markstory/3.0-set-trait

3.0 - Move set() into a trait