Bullet-proofing companion objects

Companion class/module computations now also work for local classes and modules. For this to work,
either one of two conditions must be met: (1) some enclosing context refers to a scope that
contains the companions. (2) the context's compilation unit has a typed tree that contains the
companions. (1) is usually true when type-checking, (2) when transforming trees.

Local companions are searched as follows: If (2) holds, we locate the statement sequence containing
the companions by searching down from the root stored in the compilation unit. Otherwise, we search
outwards in the enclosing contexts for a scope containing the
companions.
Fixed parse error with @unchecked

Dotty currently cannot parse @unchecked annotations in pattern types. That's why the previous commit failed. We need to come back to this and fix it. For the moment, to make on the current branch, the annotation is removed.
Merge pull request #69 from odersky/topic/generalize-companions

Bullet-proofing companion objects
Test case for TreeInfo#defPath

I'm about to refactor that method in terms of a TreeAccumulator.

Note that I've packaged the test case in `dotty.tools.dotc.ast`
 I believe this is the best approach for organizing unit tests:
 the import tax is minimized, and use of relative imports is
 made less fragile by avoiding creating new packages to test code.

I'll reorganize the other unit tests like this if others agree.
Refactor TreeInfo#defPath

Uses a TreeAccumulator, rather than ad-hoc descent through `productIterator`.
Merge pull request #76 from retronym/topic/defPath-accum

Test and refactor TreeInfo#defPath
Remove dependency on scala-xml.

Mimic https://github.com/scala/scala/commit/4e9b33ab24bb3bf922c37a05a79af364b7b32b84
Merge pull request #79 from DarkDimius/noxml

Remove dependency on scala-xml.