Add superclass info to ClassDoc and output it in pprintDocs (:doc command)
Fix if - operator precedence mistake, fixes #911
Correct filtering for subclasses in pprintDocs (fixes #1212)
Correct filtering for subclasses in pprintDocs for multiparameter subclasses
Fix List.split

This commit makes List.split behave a bit more sane and elegantly.
Currently split has the following behaviour:

  0: split (== ':") "foo"   -> ["foo"]
  1: split (== ':") ":foo"  -> ["", "foo"]
  2: split (== ':") "foo:"  -> ["foo"]     (!!)

  3: split (== ':') ":foo:foo"   -> ["", "foo", "foo"]
  4: split (== ':') ":foo"       -> ["", "foo"]
  5: split (== ':') ""           -> []     (!!)

Cases 3 and 5 are the problematic ones. I would think they would result
in ["foo", ""] and [""] respectively. This patch gives split this
behaviour, it also gives split the nice property that the length of
(split ':' str) is (1 + the number of colons in str)

I've looked at the uses of split in the prelude and none of them seem to
be effected by this change.
Merge current master into fix/911- branch
Make sensible implicit choices in :addlemma

Specifically, make an argument implicit if it's constructor guarded
elsewhere in the type (i.e. can be inferred by unification in the usual
way).
Merge pull request #1220 from canndrew/master

Fix List.split
Merge pull request #1221 from paulkoerbitz/fix/911-make-doc-show-superclasses

Fix/911 make doc show superclasses
'search' now fails if there are metavariables

But only in tactic mode --- in interactive editing it leaves the
metavariables so they can be solved by hand.

Requires "make lib_clean" due to ibc version increment.
Merge branch 'master' of github.com:idris-lang/Idris-dev
Fix silly error in 'search'

Previous version would only ever work if it hit the right choice first
time!
:makelemma now works on provisional definitions

Adding an appropriate pattern matching definition after the provisional
line. e.g. on foo_lemma in:

foo x y ?= {foo_lemma} z

it will generate something like this after the foo x y pattern:

foo_lemma x y value = ?foo_lemma_rhs
Change type class top level method generation

Don't put explicit arguments in the top level methods (i.e. make them
point free). This means that they will be more inclined to reduce, which
helps in particular with totality checking, but possibly also with
theorem proving.