Reorganizing source tree, fix bugs, add test cases
Re-adding moved template files from re-organization
Adding Hopcroft algorithm, CLexer example, and fixed lots of bugs in polynomial algorithm