Remove flakiness-causing static initializer test

Having both of these tests makes them order dependent. If the one that sets the
final field is run first, the one checking for null will clearly fail (nothing
is resetting this static state). Unless you run a separate JVM per test method,
this will always be flaky (it's dependent on the `getDeclaredMethods` method in
the JVM and that returns a nondeterministic order).

Besides, the second test already covers the condition from the first.
Fix resource deferring to decouple tests from Surefire and Maven

`MockClassLoaderTest` runs fine with Maven but fails with buck.
The failure has to do with how it constructs a `URLClassLoader`.

With Maven, the current ClassLoader is an `AppPathClassLoader` (since Maven
runs the tests from an exploded folder tree) while with buck, it's a
`JarClassLoader`. You can't specify a `URLClassLaoder` to a non-root location
in a `jar`, it gets silently truncated to the root of the `jar`.

Therefore, introduce `ResourcePrefixClassLoader` which prefixes resource paths
(shocking, I know). This maintains the invariant that the test should fail to
find the resources if `MockClassLoader` is not deferring correctly.
Untangle WhiteBoxTest method-order dependency

Turns out, WhiteBoxTest was coupled to the order of execution of the test
methods (manipulating static state and not resetting it).
Merge pull request #5 from facebook/flaky-tests

Flaky tests