Adds the option `-P:wartremover:excluded:XXX`, where `XXX` is a comma separed list of symbol prefix that will be ignored during `traversals`

Adds the option `-P:wartremover:excluded:XXX`, where `XXX` is a comma separed list of symbol prefix that will be ignored during `traversals`

  * `WartUniverse` now contains
    * `val excludes: List[String]` - a list of prefixes.
    * `ExcludingTraverser`, which verifies if the tree symbol's name is contained in excludes and applies or not the `Traversal`.
    * `trait Traverser extends universe.Traverser with ExcludingTraverser` which is now the traverser that should be implemented by `WartTraverser`s. Replaces old `type Traverser = universe.Traverser`. It comes with the following caveat:
    * The traversers in `WartTraverser` now have to be declared `new u.Traverser`, where `u:WartUniverse`. All existing traversers have been changed accordingly.

  * I wasn't able to figure out how to add the exclusions to `MacroUniverse`.

  * For some reason the `UnsafeTest` is returning its result in a different order, to amend that the results were changed from List to Set.
@pedrofurla, I think this is wrong. The call to `.traverse`, [here](https://github.com/typelevel/wartremover/pull/71/files#diff-b416037f70358fd485747ffb7ba486e6R72), will ommit your exclusion checks and go directly for concrete implementation that's lowest in the hierarchy. Only the first `super.traverse` call in there will trigger your code. This is how JVM works, no? Or am I wrong here?