Huge refactor

- Removed unnecessary code (leakcheck)
- Removed unused code, which was mostly in VString and LinkedList
- Replaced custom utlity classes with standard library equivalents since they don't add much more functionality and are more prone to bugs (VString -> std::string; LinkedList -> std::map, std::vector)
- Replaced all new/delete with RAII classes (mostly std::string and std::vector)
- Wrapped file handles in RAII class
- Optimised slow LinkedList traversals by replacing with std::map of (lowerCaseStr -> str)
- Wrote a more structured key-value tokenizer rather than tokenizing solely on double quotes