Automatically fetch PhantomJS and use it during testing
Use a specific version to avoid MVN warning
Improve driver / proxy cleanup if test fails
Better diagnosis of PhantomJSTest failures.

Required updating JUnit to 4.11 to get improved Hamcrest matchers
Upgrade to Selenium 2.39 to get Firefox to work

Had to mangle some POM dependencies along the way
New method for getting a connectable proxy address

The original getLocalHost() method was fine for returning an address to bind to,
but for the times when you wanted to find out what address to connect to (e.g.
when constructing a proxy address in seleniumProxy()), returning 0.0.0.0 would
cause problems.

This is an additional method that will filter out the uncontactable 0.0.0.0 address,
and replace it with a more contactable localhost address. seleniumProxy() method
updated to use the new method.
Force the test to go to the US version of Yahoo

When accessing www.yahoo.com from the UK, the first page in the HAR is
a redirect to uk.yahoo.com. To avoid having different expected test
results for each country, hard-coding the US site.
Force the test to use the US version of Google

Skip any initial redirects when we're looking for the expected result.
Fixes HarResultsTest on Windows

The headers coming back from the server depend on which platform Jetty
is running on. From evidence on github and my own machine, it seems that
they're 226 bytes long on Win, and 227 elsewhere.

That being said, the sample size is very low, and it would be better to
calculate the expected header size as part of the test. But I'm not sure
I understand the intention behind the test well enough to do that.
Merge branch 'feature/get-selenium-proxy-tests-working' into develop

Conflicts:
	src/main/java/net/lightbody/bmp/proxy/ProxyServer.java
Merge branch 'feature/fix-har-results-stats-on-windows' into develop