Cleanup up synchronization handling for blacklists, whitelists, and active requests. Preferring concurrent collections in java.util.concurrent when possible.
Merge branch 'logger-cleanup' into synchronization-cleanup
Merge branch 'logger-cleanup' into synchronization-cleanup
Made modifiable fields of BrowserMobHttpClient volatile, since other threads may update them through the REST interface. Made some immutable fields final where possible.
Added server shutdown to test
Made UserAgentStringParser initialization on-demand, to prevent update traffic and log messages when not writing to a HAR
Minor ArrayList size addition
Merge branch 'logger-cleanup' into synchronization-cleanup

Conflicts:
	src/main/java/net/lightbody/bmp/proxy/ProxyManager.java
Merge branch 'logger-cleanup' into synchronization-cleanup
Merge remote-tracking branch 'upstream/master' into synchronization-cleanup
Added support for empty, enabled whitelists.
Merge remote-tracking branch 'upstream/master' into synchronization-cleanup
Updated uadetector to most recent version
Extracted blacklist matching code into BlacklistEntry class.

Merge branch 'synchronization-cleanup'

Conflicts:
	src/main/java/net/lightbody/bmp/proxy/BlacklistEntry.java
	src/main/java/net/lightbody/bmp/proxy/ProxyManager.java
	src/main/java/net/lightbody/bmp/proxy/http/BrowserMobHttpClient.java
Merge pull request #126 from jekh/synchronization-cleanup

Synchronization cleanup