Better result download predictability by knowing the result compressed size in msgpack.gz format

Implements CLT-202
Add result_size to Job class

Changes:
- Add result_size, the job's compressed message pack
  size in bytes, to the model
- passing result_size around and exposing it through
  the user facing apis as part of the Job class
- Fixed some tests and added new to cover this
  new feature

Implements the client library side of CLT-202
Merge branch 'master' into branch 'CLT-202'
First attempt passing around the compressed frament size streamed in from the API

Client changes for CLT-202 (incomplete)
Merged 'master' into 'CLT-202'
Better result download predictability by exposing the incremental compressed msgpack size

Changes:
* add optional block receiving parameter requiring 1 argument to Job#result_format:
  * Job#result_format;
  * client.job_result_format;
  * api.job_result_format;
* complete implementation of Job#result_each_with_compr_size:
  * Job#result_each_with_compr_size;
  * client.job_result_each_with_compr_size;
  * api.job_result_each_with_compr_size;
* move extending of HTTPResponse object with DirectReadBodyMixin or
  DeflateReadBodyMixin to the 3 locations using it:
  * api.job_result_format;
  * api.job_result_each;
  * api.job_result_each_with_compr_size;
* api.job_result_each_with_compr_size uses DirectReadBodyMixin exclusively to
  expose the compressed file size. Inflating and MessageUnpacking happens
  in sequence. The function requires a 2 arguments block which will receive
  the record with the current cumulative size (total file size read so far);
* api.job_result_each select DeflateReadBodyMixin since it wants to decompress the
  result no matter what;
* api.job_result_Format uses DeflateReadBodyMixin to inflate the MessagePack
  compressed response for 'msgpack' output. DirectReadBodyMixin is used to output
  in 'msgpack.gz' format.

Completes CLT-202
Remove unused mixin
Remove spurious characters

Fixes c4fdd3e1
CLT-202