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
Add primitive for stdout, stderr
Add :makelemma command in interactive editing

Given a metavariable and a line number, add a new top level function to
solve that metavariable, and fill in the metavariable with an
application of that function.

e.g. given

  plus_commutes : (n : Nat) -> (m : Nat) -> n + m = m + n
  plus_commutes Z m = ?pcrhs_Z
  plus_commutes (S k) m = rewrite plus_commutes k m in ?pcrhs_S

:makelemma on pcrhs_S will update the file to

  pcrhs_S : (k : Nat) -> (m : Nat) -> S (plus m k) = plus m (S k)

  plus_commutes : (n : Nat) -> (m : Nat) -> n + m = m + n
  plus_commutes Z m = ?pcrhs_Z
  plus_commutes (S k) m = rewrite plus_commutes k m in (pcrhs_S k m)

where pcrhs_S can be built interactively in the normal way.
Tidy output of :makelemma
:addclause now adds template bodies to instances
Update CHANGELOG
Check if class is meant to be empty...

...before treating an empty class definition as a declaration rather
than a definition.
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!