Fixed template's problem with not allowing for nested function/arrays in custom functions, split some of template's functionality into Compiler, shuffled some files around, updated READMEs, updated tests