fix warnings
core - move signing responsibility to SignatureKey [BREAKING]

 [BREAKING] removed the getKey method from SignatureKey, don't need to expose it anymore.
factory + core - REFACTOR - refactor Annotation Processors
Add a new concept of "signer" in order to delegate the process of cookie signing, and cookie signature check.
The cookie filter will no more do this work, but delegates signing and signature verification to its injected signer.

Create a DefaultCookieSigner component which use the existing SignatureKey in order to stay compatible with previous releases.
The DefaultCookieSigner get the signature key by dependency injection and use the HMAC-SHA1 algorithm (defined in Crypto class) to sign the cookie.
core - REFACTOR - introduce AbstractResponse

make responses implementation more consistent
don't rely on underlying implementation for PrintWriter, always use underlying
OutputStream only
core - introduce RestxResponse.getCharset() [BREAKING]

[BREAKING] if you implemented RestxResponse interface, you will have to implement this
method. It is now recommended to extend AbstractResponse to do so.
core - review response wrapper getWriter implementation

it now delegates to getOutputStream(), making it much easier to wrap the response stream.
core - try to close response as soon as possible [BREAKING]

it is the route that should be closing the response. Because there are many routes
 implementation, we introduce a ResponseCloserFilter which is responsible for closing
 the response.

 The point is that now the main router can't be sure if the response has been closed or not,
 so we need to make sure that a response close() method can be called more than once.

 Therefore we introduced isClosed() method on RestxResponse, which is a breaking change.

 The whole point of closing the response as soon as possible is that if a filter wraps
 the response, close will be called on the wrapped response, and not only the original one,
 which is what can be expected by a filter.

 [BREAKING] added a close() method to interface RestResponse, implement it if you implemented RestxResponse directly
core - introduce gzip filter

gzip all responses as soon as client accepts gzip encoding

paths to handle can be configured using `restx.http.gzip.paths` setting.
tests - introduce new json diff API

the intent is to replace json hamcrest, in which error reporting is not good enough.

still need to wrap it in a tester.

tests - json diff API - add ignorable extra keys feature
tests - introduce new json assertions
tests - introduce json merge after a diff
tests - json - add merged expect to assertion error details w/ ignore extra field
tests - use new json assertions mechanism
tests - fix warnings
tests - json - generate html report when data is too large

When json to be compared is too large, the output is very difficult to read.
Therefore we know generate a simple HTML report with more details and easier to browse.
tests - json - fix access to parent of top most path
tests - json - some merge fixes - improvement
jongo - fix helper to build startWith / ignoreCase patterns
- Correct the bug with browser autofill (This bug is due to a known bug of angularjs https://github.com/angular/angular.js/issues/1460, but as the correction is a little bit too much code to add, I prefer a less verbose solution found there: http://victorblog.com/2014/01/12/fixing-autocomplete-autofill-on-angularjs-form-submit/).
- Default focus on the username input (using the html5 attribute autofocus).
- Change login button type to "submit" in order to be able to validate the form with the enter key.