Add implicit functor args to the implicit environment.
Merge pull request #18 from yallop/implicit-functor-arg-scope

Add implicit functor arguments to the implicit environment.
Merge pull request #20 from lpw25/fix-marking

Fix bug in type marking when replacing variables with abstract types
Merge pull request #21 from lpw25/always-generalize

Always generalize implicits before generalization
Add forwards propagation over implicit function defintions