added project layout for java hmac client
unit tests to check merging of two Maps
removed Map Utils class and test cases, HashMap already has such a merge method (putAll)
WardenHMacSigner sets the default values and applies provided options

* a Utils class has an interpolateString method to replace "%{key}", "key => value" from a given replacements map
* accompanied by unit test cases
* default options are initialized
WardenHMacSigner has a few (unfinished) public methods

* maps given algorithm to HMac algorithm of java
* prepared a method to generate a signature from a given set of parameters
* prepared method for providing a canonical representation of a map of parameters
* a few test cases added for canonical representation
common-codecs are added to maven script as dependency
a function uses a message, algorithm and the secret key to generate a HMac hash as hexadecimal string
method signRequest extended, it shall parse the query string and order / unify the queries

* Utils class has getQueriesAsMap function (not implemented and tested yet)
* a dependency for parsing query parameters from a URL was added to maven build file
url query entries are sorted, accompanied by tests
Implementation of signRequest method continued

* put properties necessary for signing a request into a separate class
* thus properties will be correctly formatted and can be tested independently

A signing algorithm must be given to the WardenHMacSigner

* removed list of supported algorithms, the user is now responsible for providing one
* error handling for providing a false algorithm is therefore not part of the Signer anymore
Refactoring for btter separation of concerns and DRY principle

* put function for the canonical representation of values to RequestInfo, is more appropriate there
* a default WardenHMacSigher (with SHA-1 algorithm) can be constructed
* header property of RequestInfo is ordered now (keys)
* a date object is constructed, either by a Date object, a timestamp or specific Date string
* creation of RequstInfo creates queries and sorts entries, moved tests
* moved Comparator to RequestInfo class, only used there
removed commented code
canonical representation of a request implemented

* queries are sorted and put into to a single formatted string
* this simplified tests
* the `headers` property became a list of key/value pairs, also sorted
* a join function takes a list of strings and joins them with a delimiter
join method works on Iteratable
RequestInfo can return if it's a querybased request, renamed variable
Encapsulated the possible parameters for signRequest / signUrl into a separate class that can be modified

* this makes all parameters type-safe
* thus reduces the number of possible errors
* not integrated yet!
request parameters are used and given as argument to signRequest method

* simplifies handling a lot
* RequestInfo uses the request parameters to build canonical representation
* the RequestParams object has default values when created, making overwriting specific properties obsolete, they must be set explicitly by user
* adjusted tests and removed obsolete ones
the Hmac signer sets headers and queries depending on query option, still does not return anything valid

* RequestInfo can return a Url string with all the information (path, query parameters, fragment)
* a Query class is used to parse all query parameters of a Url
* Query is also used to return and encoded query string with all parameters
* simplified Lists in RequestParams, removed unused methods
* added and moved tests

**Note** Unlike php or ruby there seems to be no excellent and easy way to construct a url where all
query parameters are sorted accordingly and follow a specific scheme. The current solution to generate
the Query part of the Url might work for most scenarios but the used classes do not state full RFC 3986
compliancy.
changed occurrences of 'UTF-8' to use Encoding constant, removed unused method
signUrl function returns the signed url, uses RequestParams as argument