Added an :unlet/:undefine command.

  Idris> :let nat : Nat; nat = 6; hands = S nat; feet = S hands
  Idris> :undefine
  Idris> hands -- error

  Alternately:
  Idris> :let nat : Nat; nat = 6; hands = S nat; feet = S hands
  Idris> :undefine nat feet
  Idris> hands
  7
  Idris> feet -- error
Using ASTUtils instead of writing things out the long way
Merge branch 'master' into repl-definitions
Supporting some more declaration types.

They're still not all ready though. Syntax, infix, and instance
declarations still don't work.
REPL class definitions should now be marked as repl-defined
Merge branch 'master' into repl-definitions

Conflicts:
	src/Idris/REPLParser.hs
Adding Alyssa Carter to CONTRIBUTORS
Use a slightly different pretty printer for PDecls
Fixity declarations work in the repl now.
Instance declarations are working now.

It would be a good idea to rewrite `fixClauses` though.
Removing an obsolete case
Merge branch 'master' into repl-definitions

Conflicts:
	src/Idris/REPL.hs
Added :let and :undefine to the repl help
Changed :undefine to undefine the transitive closure of reachable names
No need to check whether something referencing a repl name is repl-defined
Merge branch 'master' into repl-definitions

Conflicts:
	src/Idris/AbsSyntaxTree.hs
	src/Idris/REPL.hs
Adding a prettyprinted message for undefining names
Tidy up the IState when classes are undefined
Only undefine things once, even if they're referenced multiple times
Merge pull request #1428 from trillioneyes/repl-definitions

Improving :let