Factor out LLVM backend

The LLVM backend is now available as a seperate project on github.
Adapt travis testing
Only build llvm backend if testing llvm
Make sure we use the official version of idris-llvm for testing
Introduce class Negatable
Rename the Negatable class to Neg
Make unary "-" use the Neg typeclass
Add support for the primitive prim__negFloat : Float -> Float
Rename float negation primitive for more uniformity
Add test for new float primitive prim__negFloat
Remove papers directory

It doesn't really belong here especially since this is a repository
owned by a community rather than an individual, and it's a single author
paper (and it's now published anyway so any history isn't really
relevant any more).
Merge pull request #1540 from edwinb/master

Remove papers directory
Make output from :t name annotate with terms

This lets IDEs do things like normalise the output from :t. Previously,
it worked for :t of a term, but not :t of a name.
Pretty-printing of implicit args to (=)

Now, the pretty-printer respects the "show implicts" option for
propositional equality. Demo:
```
λΠ> (a : Type) -> (n,m,o : Nat) -> (xs : Vect n a) -> (ys : Vect m a) -> (zs : Vect o a) -> xs ++ (ys ++ zs) = (xs ++ ys) ++ zs
(a : Type) ->
(n : Nat) ->
(m : Nat) ->
(o : Nat) ->
(xs : Vect n a) ->
(ys : Vect m a) -> (zs : Vect o a) -> xs ++ ys ++ zs = (xs ++ ys) ++ zs : Type
λΠ> :set showimplicits
λΠ> (a : Type) -> (n,m,o : Nat) -> (xs : Vect n a) -> (ys : Vect m a) -> (zs : Vect o a) -> xs ++ (ys ++ zs) = (xs ++ ys) ++ zs
(a : Type) ->
(n : Prelude.Nat.Nat) ->
(m : Prelude.Nat.Nat) ->
(o : Prelude.Nat.Nat) ->
(xs : Prelude.Vect.Vect n a) ->
(ys : Prelude.Vect.Vect m a) ->
(zs : Prelude.Vect.Vect o a) ->
(=) {A = Prelude.Vect.Vect (Prelude.Nat.plus n (Prelude.Nat.plus m o)) a}
    {B = Prelude.Vect.Vect (Prelude.Nat.plus (Prelude.Nat.plus n m) o) a}
    (Prelude.Vect.(++) {m = n}
                       {a = a}
                       {n = Prelude.Nat.plus m o}
                       xs
                       (Prelude.Vect.(++) {m = m} {a = a} {n = o} ys zs))
    (Prelude.Vect.(++) {m = Prelude.Nat.plus n m}
                       {a = a}
                       {n = o}
                       (Prelude.Vect.(++) {m = n} {a = a} {n = m} xs ys)
                       zs) : Type
```

This fixes #1410.
Merge pull request #1541 from david-christiansen/pprint-more-annots

Pretty-printer improvements
Merge branch 'master' of github.com:markuspf/Idris-dev into markuspf-master

Conflicts:
	libs/prelude/Prelude/Classes.idr
	src/Idris/ParseOps.hs