Improvements made to Singleton, Exception, featureSizeType
Implementation of the abstract HashGenerators

Refactores existing code to use new hashGenerators

Added tests for HashGenerators
Merge branch 'Broders-duplicate-detection' of https://github.com/erwinvaneyk/crawljax into Broders-duplicate-detection

Conflicts:

core/src/test/java/com/crawljax/core/duplicatedetection/CrawlHashTest.ja
va

core/src/test/java/com/crawljax/core/duplicatedetection/FeatureShingleTe
st.java
Merge branch 'Broders-duplicate-detection' of https://github.com/erwinvaneyk/crawljax into Broders-duplicate-detection

Conflicts:
	core/src/main/java/com/crawljax/core/state/StateVertexImpl.java
Add vertex only if none of the vertices in the sfg is a near-duplicate of that vertex

Check if the new vertex is not equals (is not a near duplicate) to any
of the vertices in the current state-flow-graph, before inserting the
vertex in the graph.
Add the hash array of each vertex to the result.json
Inverted the distance function of broder

It returns 0 if both sets are equals and 1 if both are completely
different and values in between for the corresponding amount of
difference.
Used crawljax-formatter for duplicate detection package
Used formatter on our changes in the state package
Used crawljax-formatter for duplicate detection package

Added featureTypes to CrawljaxConfiguration

Remove redundant classes

Fix Tests
Refactoring and comments added to NearDuplicateDetection
Added precondition checks for Broder and crawlhash

Additional refactoring of NDD's
Merge remote-tracking branch 'origin/Guice-refactoring-ndd' into Broders-duplicate-detection

Conflicts:
	core/src/main/java/com/crawljax/core/state/NDDStateVertexFactory.java
	core/src/main/java/com/crawljax/core/state/StateVertexNDD.java
	core/src/main/java/com/crawljax/core/state/duplicatedetection/FeatureException.java
	core/src/main/java/com/crawljax/core/state/duplicatedetection/HashGeneratorFactory.java
	core/src/main/java/com/crawljax/core/state/duplicatedetection/NearDuplicateDetection.java
	core/src/main/java/com/crawljax/core/state/duplicatedetection/NearDuplicateDetectionBroder32.java
	core/src/main/java/com/crawljax/core/state/duplicatedetection/NearDuplicateDetectionCrawlHash32.java
	core/src/main/java/com/crawljax/core/state/duplicatedetection/NearDuplicateDetectionSingleton.java
	core/src/test/java/com/crawljax/core/duplicatedetection/BroderTest.java
Merge branch 'Broders-duplicate-detection' of https://github.com/erwinvaneyk/crawljax into duplicate-detection
Conflicts:

core/src/main/java/com/crawljax/core/state/duplicatedetection/NearDuplic
ateDetectionBroder32.java

core/src/main/java/com/crawljax/core/state/duplicatedetection/NearDuplic
ateDetectionCrawlHash32.java
Merge remote-tracking branch 'origin/Broders-duplicate-detection' into near-duplicate-detection

Conflicts:
	core/src/main/java/com/crawljax/core/state/duplicatedetection/NearDuplicateDetection.java
	core/src/main/java/com/crawljax/core/state/duplicatedetection/NearDuplicateDetectionCrawlHash32.java
	core/src/main/java/com/crawljax/core/state/duplicatedetection/NearDuplicateDetectionSingleton.java
Added new exception-type: FeatureException
Replaced Guice injection with Guice provider
Added CrawljaxConfiguration-check for the features
Replaces the primitive int[] datatype of hashes/fingerprints with a dedicated Fingerprint-object
Add tests for border's and CrawlHash functionality

Add tests for borders get and set feature and threshold

Add tests for crawlhash set and get features and threshold