Allow class names to be infix

Use case:

    class (:<:) (f : Type -> Type) (g : Type -> Type) where
      isSubFun : SubFunctor f g
Add test040/B/*.idr to idris.cabal
Remove LLVM test with unimplemented primitive
(Temporary!) Turn off typecase test

This needs to be done properly, and currently isn't, which is breaking
more things than it fixes. Will revisit ASAP...
Fix Fin literals and add test

This was actually due to a preview fix for a bug which we were working
around in Prelude.Fin! But the tests didn't catch the problem, and so
now they will in future.
Categorise tests
Fix cabal with new test files
Missed a couple more files :)
javascript: allow more inlining
javascript: inline some missed cases
javascript: remove jsobject
javascript: better error representation
javascript: whitespace
javascript: optimize branches
Fix error in .cabal
Add input for interactive test
Make prover respect showimplicits from IState
Render using console width
Use the pprint library to insert line breaks

The "Sized" class is not deleted because it is useful in other contexts,
such as eliding parts of error messages.

The "show" instances assume an absurdly wide monitor so as to not break
interactive editing.
Use pretty-printer to display :t for metavars