feat: HEAD /blocks/{block_id} endpoint

on a HEAD, the block is checked for existence in the metadata store,
after which its checked for existence in block storage.

- If present in metadata, and non-existent in block storage:
     502 Bad Gateway is returned along with an explanation.

- If present both in metadata and block storage.:
     200 OK is returned along with headers such as
     x-block-reference-count

- If not present in metadata:
     404 Not Found is returned
move:consistency check logic from resource to model

Addressing review comments:
Consistency check now takes place in the model, and exception thrown
if consistency check fails. The exception is caught in on_head function
of Block's Item Resource and corresponding status code (502) set
in response.
Support Block HEAD
Merge remote-tracking branch 'upstream/master' into head_block_endpoint
fix: check for block existence instead of getting the block

the model now has a has_block() function which checks for existence
in both metadata and storage.
Merge branch 'master' into head_block
chore: remove old config.py reference

This patch removes a reference to config.py which no longer exists
check: vault existence

return a 404 if the vault does not exist.
fix: status code 200 to 204

Addressing Xuan's comments:
Since we are returning an empty body here, with most information
in the headers, we return a 204 with RESTful standards in mind.
exception: Consistency Error fix

- Fix Consistency Error Exception to be very explicit about what went
  wrong. The ConsistencyError Exception now outputs a message regarding
  the blockid, vaultid and the project id that caused the exception, and
  that message is logged.

- Prefix helper functions not intended for public consumption with '_'
exception: Consistency Error extra param 'msg'

- Adds additional context by passing 'msg' when raising
  Consistency Error
- Return Consistency Error's thrown message back to client
fix: order of params in Consistency Exception

- Add Tests for msg being present or not being present as
  additional parameter
fix: loading of configs

This patch fixes loading of config files. The default config will now be
used if no other config exists. This allows us to pip install deuce,
then immediately run deuce-server.

Adds relative path to setup.py

This patch adds a relative path to the location of config files to try
to appease the Travis-CI gods.

This patch adds the

Force travis python version to 3.3

Revert "Adds relative path to setup.py"

This reverts commit 62bf9f946c1eb563d1159101d2036ff0092a4ef6.

More travis.yml tweaks

Increase verbosity for travis builds

Install binary deps for travis

Incremental change

Incremental changes

This patch will be squashed.
Merge pull request #172 from painterjd/fix_config_file_rebased

Fix config file rebased
Merge pull request #161 from TheSriram/head_block_endpoint

feat: HEAD /blocks/{block_id} endpoint
Merge pull request #167 from jc7998/head_block

API Tests: Add HEAD Block tests
Merge remote-tracking branch 'upstream/master' into meta_storage_name_change
fix: head block

_storage_has_block now checks for a block in storage
using the storageid instead of the block id.