Closures can now be called with the same syntax as templates. Scope refactoring.
Add more checks surrounding closure calls.

Add StandardClosure and StandardTemplate classes for (relatively) easy definition of templates and especially closures outside bryg.
Fix a bug where the closure compiler would render an "execute" instead of a "render" method.
Update tests to reflect the new changes to closures.

Variables can now be nullable, these are currently all variables except mandatory input parameters and primitive variables.
The scope has been refactored to accept Variable objects, instead of taking the constructor parameters.
This increases the modularity of scopes and variables.