working on decrypt_sig
tests pass with new version
macroize signing version everywhere
lifted definitions to separate file
change read_* to decode_*
fix decrypt_sig to accept binary cert
stricter equality match on signing version
add canonicalize_userid guarded by signing version
internal_sign with signing_version guard
replace internal_sign with create_signature
remove signing version from decrypt_sig
uppercase all defines
cleaning up guards on verify_sig
getting rid of exception handling
removing exception handling from decrypt_sig
removing stray beam file
defer key type check from decrypt_sig to decode_key_data

Conflicts:
	src/chef_authn.erl
Fix public key handling for version 1.2 authentication

The public key passed to authenticate_user_request is expected to be
raw PEM text (as a binary) not the decoded key.

Added basic test coverage for versions 1.0, 1.1, and 1.2 for signing
and authenticating.

Also added test for verify_sig for signing version 1.2

The decrypt_sig_v1_2_test wasn't testing chef_authn API. The new test
verifies calling the public_key functions via the
chef_authn (internal) API.
Fix bugs in canonical_path and improve test coverage

canonical_path now handles two edge cases correctly:

* returns "/" for degenerate input "////"

* returns "/a/b/c" for "/a/b/c/?q=1" -- that is, no trailing slash
  even in presence of query params.
Add test for sign/authenticate with no body