Allow “!” to start a larger operator

This causes it to be usable for a bang binding only if not directly followed by
additional operator chars, which should be the norm when intended as a bang
binding.
Add regression test for operators starting with "!"
Add Quotable instances for Raw and Tactic
Update documentation in Language.Reflection

Now it's in a format where it is visible to the compiler.
Merge pull request #1443 from david-christiansen/reflection-updates

Reflection updates
Improve quasiquote patterns for MN

In the past, this elaborated to `_`.  However, this led to pattern matches
confusing built-in types like `()`, as these are named with `MN`. This
update makes the generated pattern more specific.
Merge pull request #1440 from Melvar/fix-bangbind-op

Allow “!” to start a larger operator
Merge pull request #1444 from david-christiansen/reflection-updates

Improve quasiquote patterns for MN
Split elaborator into multiple source files
Merge branch 'master' of github.com:idris-lang/Idris-dev
Update version number
Add %no_implicit directive

'implicit' is useful, but can cause problems when there are lots of
places implicit coercions can be applied. In particular, in Effects,
'lift' can be applied to each operation, and to the combination of
operations in >>=, so if there's an error the elaborator will try an
exponentially increasing number of things depending on the number of
>>=s.

This is a bit of an ugly hack, but it allows certain definitions (such
as >>=) to be non-coercible, so this exponential explosion doesn't
happen any more.

Fixes #1446