Move to version 1 protocol. Implement msgpack. Refactoring

* This spec implements the verison 1 protocol
* Wire compatible with the python version
* Removed xdr implementaion
* Wrote msgpack implementation (upsteam msgpack does not yet provide
  support for the published msgpack standard, which the python version
  does, so writing our own seemed reasonable given that we use a small
  subset.
* In line with the new simplified datatypes, The container type
  VerifiableMessage is removed.
* Simplified the Signer API (signer now signs arbitrary byte arrays)
Move [de]serialization code into a separate CrtAuthCodec class

* Somewhat improved testing
* MiniMessagePack now throws RuntimeException instead of Error when
 when failing to write to an ByteArrayOutputStream
Formatting fix overly long lines and qualified exception classes in javadoc comments
Merge pull request #16 from noaresare/pr/new-protocol-version

Move to version 1 protocol. Implement msgpack. Refactoring
Create Fingerprint class which encapsulates the fingerprint logic

* Makes the Signer interface less susceptible to parameter order
  problem, an issue when both payload and fingerprint was char[]
* Removes a couple of Arrays.copyOf() invocations (since
  Fingerprint is immutable)
Moved HMAC functionality from digest module to CrtAuthCodec.

* Since message verification is now part of the deserializeAuthenticated
  interface in CrtAuthCodec it seems reasonable move it.
* Removed the DigestAlgorithm abstraction and the unused SHA-1
  implementation from the digest module.
* Moved the HMAC variant from VerifiableDigestAlgorithm to a static method
  in CrtAuthCodec.
* Removed the somewhat confusing double builder parameter to CrtAuthServer
  where both secret and DigestAlgorithm filled the same function.
Merge pull request #18 from noaresare/pr/fingerprint-type

Create Fingerprint class which encapsulates the fingerprint logic
Merge pull request #17 from noaresare/pr/HMAC-refactor

Moved HMAC functionality from digest module to CrtAuthCodec.
Remove information leak about whether a user exists on the system

Now createChallenge will always return a challenge. If there is no key
a dummy Fingerprint is created based on the server secret and username.
Added logging on public key not found, refactoring
Merge pull request #19 from noaresare/pr/user-info-leak

Remove information leak about whether a user exists on the system