Make more type classes resolve, by matching rather than unification

Change 'apply' to 'match_apply' so that missing arguments are filled in by
matching on normal forms. This is safe (we think), since type class resolution
is merely looking for one instance which works, and this will make more
instances work.

Fixes #527
Unification tweak for unifying types and metavariable applications

Fixes #507
Decidable.Equality: Add DecEq (Vect n a) instance
Remove unneeded lemma
Decidable.Equality: "Inline" vectDecEq
Improves upon/fixes idris-lang/Idris-dev#530
Fixes idris-lang/Idris-dev#512
Remember whether implicits are machine generated

This way, we can skip a huge chunk of coverage checking if we know the
case was generated by the machine rather than a programmer.
Fixes #535
Remove forcing optimisation from coverage checker

Because it turns out to be unsound! But using implicit arguments has the
same effect and is (I think...) sound.
Fix parsers dependency to == 0.9

Because otherwise, the parser inexplicably stops working.
Merge branch 'vect-deceq' of https://github.com/reynir/Idris-dev into reynir-vect-deceq
Merge branch 'feature/simplifiedparsing' of https://github.com/ahmadsalim/Idris-dev into ahmadsalim-feature/simplifiedparsing
Merge branch 'feature/nocolourrepl' of https://github.com/ahmadsalim/Idris-dev into ahmadsalim-feature/nocolourrepl
Update version number to 0.9.9.3
Wrap Idris in an ErrorT

This is the first step in getting error reflection to work. The next is to
centralize the error handlers.
Make "Stale IBC" use the new error system
Update compiler to use new error handling
Use the ErrorT failure functions and attempt to preserve error structure
Merge pull request #539 from david-christiansen/errort

ErrorT
Add missing pattern