Add CaseSplit.hs and Command (not yet implemented)

Just the skeleton - intention is that case split on a variable and
a clause will produce a list of new clauses, with dependencies expanded,
when that variable is split.
First implementation of :cs (case split) REPL command

:casesplit [var] [term] will give a set of well-typed patterns which
result when the variable var is split in the term.

Implemented by Idris.CaseSplit.split, and really intended for use within
in IDE.
Record internal name of 'with' functions

Can look up by source file and line to get the internal name
and the number of 'with' arguments, so thatJ case splitting has enough
information to generate syntactically correct cases.
Extend split/splitOnLine to cope with 'where/with'

Main interface is via 'splitOnLine'. Give a source line, and a variable
name, provides information of what each variable should be updated to in
resulting pattern clauses, in the following form:

  [[(name_a1, pattern_a1), (name_b1, pattern_b1), ...],
   [(name_a2, pattern_a2), (name_b2, pattern_b2), ...],
   ...
   [(name_an, pattern_an), (name_bn, pattern_bn), ...]]

where the name expands into 'n' possible patterns, and the names
'name_a', 'name_b' etc need to be expanded to 'pattern_a', 'pattern_b'
etc in the resulting patterns (due e.g. to dependency).

An interactive editor should probably just use this information to do
a textual replacement on the original pattern, expanding into 'n' new
patterns.
Update CHANGELOG
Support PTerm serialisation properly

Need this for interactive support, so we know what the internal form
of an expression is on each source line.