Overhaul

New usage looks like:

```php
<?php

require_once __DIR__.'/vendor/autoload.php';

$crypto = new Dflydev\Hawk\Crypto\Crypto;

$client = Dflydev\Hawk\Client\ClientBuilder::create()
    ->setCrypto($crypto)
    ->build();

$credentials = new Dflydev\Hawk\Credentials\Credentials('asdf', 'sha256', '1234');

$request = $clientRequest = $client->createRequest(
    $credentials,
    'http://srcmvn.com/foo/bar?whatever',
    'GET',
    array(
        'payload' => 'hello world!',
        'content_type' => 'text/plain',
    )
);

$credentialsCallback = function ($id) use ($credentials) {
    if ($credentials->id() === $id) {
        return new Dflydev\Hawk\Credentials\Credentials(
            $credentials->key(),
            $credentials->algorithm(),
            $credentials->id()
        );
    }
};

$server = Dflydev\Hawk\Server\ServerBuilder::create($credentialsCallback)
    ->setCrypto($crypto)
    //->setTimestampSkewSec(1)
    ->build();

//sleep(2);

$request = $server->createRequest(
    'GET',
    'srcmvn.com',
    80,
    '/foo/bar?whatever',
    'text/plain',
    'hello world!',
    $request->header()->fieldValue()
);

try {
    list ($credentials, $artifacts) = $server->authenticate($request);

    $header = $server->createHeader($credentials, $artifacts, array(
        'payload' => '{"message": "good day, sir!"}',
        'content_type' => 'application/json',
    ));
} catch (Dflydev\Hawk\Server\UnauthorizedException $e) {
    print_r($e);

    throw $e;
}

// Authenticate the response w/ the payload.
// Uses credentials and original client request
$authenticatedResponse = $client->authenticateResponse(
    $credentials,
    $clientRequest,
    $header->fieldValue(),
    array(
        'payload' => '{"message": "good day, sir!"}',
        'content_type' => 'application/json',
    )
);

if ($authenticatedResponse) {
    print " [ AUTHENTICATED RESPONSE! ]\n";
} else {
    print " [ NOT authenticated... :( ]\n";
}

// Authenticate the response w/o the payload.
$authenticatedResponse = $client->authenticateResponse(
    $credentials,
    $clientRequest,
    $header->fieldValue()
);

if ($authenticatedResponse) {
    print " [ AUTHENTICATED RESPONSE! ]\n";
} else {
    print " [ NOT authenticated... :( ]\n";
}
```