Abide verification framework

First internal release of the abide framework that features:
- reflective rule and analyzer loading
- abide compiler plugin
- basic cli that provides 4-phase compilation with abide on top
- sbt plugin sketch (needs version management)
- traversal analyzer that applies single-traversal rules
- scoping analyzer that applies single-traversal rules and provides scoping and/or path information
- a few example rules and doc on how to add more

Yes, it is, but the type of `context` doesn't encode it if I remember correctly. Unless we declare context as
```scala
object context extends {
    val universe : global.type = global
} extends Context with MutabilityChecker
```
which I'm not even sure is valid since `Context` is a class, then the type of the `context` value will simply be `Context with MutabilityChecker` and not `Context with MutabilityChecker { val universe : global.type }` and we need the cast to help the compiler with this.

I think this issue is never visible in rule writing or test definition so I don't think it will affect users much.