Add (-) function for Fin
Allow getting and setting options from IDESlave

This supports checkboxes in Emacs for show implicits and error
context.
Change to infix form
Add splitAt function for List
Fix "Force" in case tree for new indexed form
Merge pull request #1006 from david-christiansen/ideslave-opts

Allow getting and setting options from IDESlave
Add name of arguments in type declaration for proper documentation
Use postulates for decEq primitive proofs

This means we can assert there is a proof at compile-time, but we're not
going to rely on the structure of that proof anywhere (which can cause
problems if they are relied on elsewhere).

Fixes #1005
Add semantic highlighting info for metavariables

This will enable the appropriate fonts to be used in IDEs such as idris-mode
Provide IDESlave output with docs and type

Now, IDESlave provides the docstring overview and type of names that it
decorates. The module Idris.Output was introduced to remove some cyclic
dependency problems.
Fix deadlock in RTS when using allocation in native code

When marking a section of memory for allocation using requireAlloc, any
requests to the allocate function (which would generally happen from
native code, such as the SDL library) would try and acquire the same
allocation lock.

The fix makes this a reentrant lock.
Merge pull request #1009 from jedesah/list_splitAt

Add splitAt function for List
Merge pull request #1012 from david-christiansen/issue/949

Add semantic highlighting info for metavariables
Merge pull request #1014 from david-christiansen/doc-type-ideslave

Show docs and types in IDESlave
Merge pull request #1016 from SimonJF/rts-deadlock-fix

Fix deadlock in RTS when using allocation in native code
Return the name of the temp file from :exec in IDESLave

This is to allow IDESlave clients to execute it as they wish
Add CodegenInfo structure, give CGs uniform types

All code generators now have type CodegenInfo -> IO (), with access to
all IRs. Later, we'll be able to register new CGs easily if they all
have the same type.
Fix compile error

Oops. That's what happens when I don't test properly...
Coverage checker fix

The patterns generated for the 'impossible' cases were not done
correctly in the case of ambiguous zero argument constructors, where it
generated a 'match anything' pattern. This is bad news for things which
use [] because that just became 'match anything'!

Also fixed a couple of definitions which relied on this bug, and added a
comment or two.
Fix parsing of $

Needs to flatten applications so that elaboration does the right thing.
Fixes #1020