objectquery: make zerovm_query a wrapper method

This change moves all of the zerovm_query code to another method:
_do_zerovm_query. zerovm_query now just simply calls it and returns its
return value.

This will allow some flexibility in refactoring the implementation of
this rather long method.
objectquery: zerovm_query: raise instead of return

Instances of `swift.common.swob.Response` can be either returned or
raised as an exception. Due to the monolithic nature of
_do_zerovm_query, raising exceptions for HTTP responses gives us some
more flexibility than simply returning values. This means that the
implementation can be broken up and factored into multiple smaller
subordinate functions. Raising exceptions (and catching/returning a
value to maintain the interface of `zerovm_query`) makes routing these
responses a bit less tedious.
objectquery: debug logging for query responses

This add debug-level logging for all HTTP responses in `zerovm_query`.
vagrant: make swift config script more flexibile

This makes the swift easier to customize by adding arbitrary config
params to each config file.
vagrant: set log level to DEBUG on object nodes
objectquery: message when x-zerocloud-id is absent

An "Internal Server Error" is raised when the `X-Zerocloud-Id` header is
missing, but the http response body didn't say anything about that. This
change adds a helpful message to the response body explaining the
problem.
Merge pull request #137 from larsbutler/objectquery-logging

Debug logging for `zerovm_query`
objectquery: add comment to explain 507 response
objectquery: fix content length mismatch cases

Previously, we only checked if the content-length header was not equal
to the amount of content received in a request. This resulted in a "499
Client Closed Request" (indicating a premature disconnect).

This response could be triggered by content either less then OR greater
than that specified in the conteint-length header. This is a bit weird.

This change alters the check and breaks it into two cases:

- actual content < content-length: 499
- actual content > content-length: 400 (Bad Request)

Tests are updated accordingly.
objectquery: 405 if container req is not GET

Containers can only be read by ZeroVM applications, thus "GET" is the
only supported method.

Previously, anything that wasn't a GET on a container resulted in a "400
Bad Request".