Proper pretty-printing of dependent pairs

 * Dependent pairs are properly highlighted as either constructors or
   types
 * Names bound in dependent pair types show up as bound in their scope
Highlight variables from error context as bound
Show error contexts with pretty-printer
Merge remote-tracking branch 'upstream/master' into semantic-pprint

Conflicts:
	src/Idris/Delaborate.hs
Merge pull request #865 from david-christiansen/semantic-pprint

Improve pretty-printing
Add 'force' (opposite of 'lazy')

Used now in boolElim to ensure that thunks don't build up unnecessarily
(and this is the intended semantics of if...then...else anyway).
Rename UnusedArgs to Erasure.
Remove export of traceUnused.
Simplify unused arg search.
Cleanup and purification in Erasure.hs.
More purification.
Simplification with pattern guards.
findUsed stub written.
Make ProjCase take exactly one alternative.   (TODO: is this safe?)
Intercommit. (Deeper usage analysis.)
Ctor usage analysis roughly complete.
Intercommit.
Another intercommit.
Reapply 08779298ce2e95b3e16a5a3e5d9c0cf3936d0507 from master.
Intercommit.