Add `@RunWith(Junit4.class)` annotations

Add `@RunWith(Junit4.class)` annotations so Dagger can build from source inside customers' codebases and run in non-maven hosted test runners.  Also, pull out a very few non-static inner types from test methods where they are defined.  Some compilers have some problems with this, notably pre Java7u2 and many Java6 compilers, that didn't have a bug fixed.