Rewrote large parts of the type-checker that handles Generics. The new implementation has fewer hacks, so should be easier to maintain and combine with other features.
* test for generic function overload #628 * test for #655 * test for #657 * test for #668 * fixed hover/go to definition bug mentioned in #668 (commit: 55ee726)