add pax headers to tar

gtar can use special headers to carry metadata
will be used to carry channel metadata for each chennel we pass in response from objectquery middleware
fix update_metadata()

it was checking for length of keys, without using full key length
refactored slightly to be more flexible
use tar pax headers for better header support

this patch removes sysmap bounce from objectquery to proxyquery
instead all the headers per channel are transferred inside tar metadata (PAX POSIX.1-2001)
by using pax headers we can attach a full set of HTTP-like headers to each and every channel we return from objectquery
it simplifies internal logic and allows for better CGI support in the future
better pass response headers to user

this patch will pass as many headers as possible from the output of user script/application to the appropriate channels
it is mainly useful for channels of `message/cgi` or `message/http` type
for these channels all their output headers and their status will be passed on to the final reponse the user gets
of course it means that `message/cgi` or `message/http` channel should have no `path` defined
caveats:
- if you define clustered job and have multiple output channels without `path` their bodies will be concatenated as usual, but their headers will overwrite one another in an undefined way, beware!
- if you defined multiple `message/cgi` or `message/http` channels without path the results will be even stranger than that, beware!
Merge pull request #105 from pkit/job_chain

better pass response headers to user