Resolve annotations against namespace and use statements.

This PR is an updated version of #1279 (see also #730). At this stage, it's just a request for feedback, <del>but if reception is good, I'd be happy to expand the new resolution rules to other annotations like `@covers` etc.</del> actually, I just went ahead and did these too.

To recap, this PR allows the user to utilize `namespace` and `use` statements to shorten the class name for `@expectedException` annotations. I also expanded on #1279 to add similar support to the `@expectedExceptionMessage` and `@expectedExceptionCode` annotations. Relevant tests were also added/updated.

This is currently done using a branch of [Cosmos](https://github.com/eloquent/cosmos/tree/feature/pathogen-based), which will become the next major version as soon as people are happy with this PR.

FYI, Cosmos now fully supports PHP 5.6 `use function` and `use const`, which means no problems with resolution when you move to support 5.6 in future.

**EDIT:** Added resolution for `@covers`, `@coversDefaultClass`, and `@uses`, with tests.
That method is not called for every annotation, only for the two annotations I mentioned. It's only called in two places in the code, [here](https://github.com/ezzatron/phpunit/blob/5b485ed7de07d87f2d40db244abe9c8652159c6c/src/Util/Test.php#L331), and [here](https://github.com/ezzatron/phpunit/blob/5b485ed7de07d87f2d40db244abe9c8652159c6c/src/Util/Test.php#L340), which are both after explicit checks on the annotation name.

I don't think the performance hit is coming from this at all.