Limited support for PhantomJS (fixes #86)

- can only generate coverage for files loaded via HTTP
- the URL to the server serving the tests (baseDir) cannot be localhost
  or 127.0.0.1, otherwise the request coming from PhantomJS is not
  proxied and no instrumentation can happen (even when serving from
  localhost, have to use any other interface besides loopback)
- no instrumentation for dynamically compiled code (evals, new
  Function(), strings being passed to setTimeout/setInterval)
- major refactoring, including using HtmlUnit's WebClient via
  HtmlWebDriver