Made includes use relative paths because this is a header only library
Removed unneeded template arguments from headers and unified functions across classes
Move tests to a more logical directory
Merge branch 'feature/cleanup' into develop