Add new Err constructor to disambiguate the CantResolveAlts constructor.

(Ironic?) I did this to facilitate pretty printing of names when
Idris cannot disambiguate among alternatives.
Enable pretty printing of CantResolveAlts errors.

I undid the creation of the CantResolveTactics constructor, and instead
ensured all CantResolveAlts errors provide Names in some way.
Merge remote-tracking branch 'upstream/master' into cantResolveAlts

Conflicts:
	src/Idris/Output.hs
Fix definition of VerifiedRing
Merge pull request #1273 from bmsherman/cantResolveAlts

Change the type of the CantResolveAlts constructor.
Merge pull request #1284 from bmsherman/verifiedRing

Fix definition of VerifiedRing
Distinguish postulate providers and type providers at use site

This is not backwards compatible, but as far as I know, there are no
users of postulate providers who are not me.

The old system allowed both the definition of the provider and the use
site to be involved in the determination of what is a postulate and what
is not. This is not good - users should always be in full control of
this.

The new implementation has two syntaxes:

%provide (x : t) with p

%provide postulate x with p

The first is the type provider syntax we know and love. The second
requires that the provider in fact return a type, which is then made
into the type of the resulting postulate.
Merge pull request #1287 from david-christiansen/postulate-providers

Distinguish postulate providers and type providers at use site
Fix name propagation in error messages

Fixes #1225
Merge branch 'master' of github.com:idris-lang/Idris-dev
Merge remote-tracking branch 'upstream/master'