Allow project to compile with GCC again

This involved two types of changes:
1. The "this->" workaround already used before to achieve GCC compatibility in accessing inherited members in a templated class
2. A bizarre bug refusing to parse nested template specifications, requiring a typedef workaround