stop silently killing unknown error names
add a test case for cache-control header
Merge branch 'develop' of git://github.com/junamai2000/riak_cs into test-cache-control
handle empty query parameters on List Multipart Uploads
add a regression test for gh#748 to handle empty query strings.
change message, and also added to oos_response
Merge pull request #834 from basho/feature/detailed-debug-log

stop silently killing unknown error names

Reviewed-by: ksauzz
Refer forked xmerl to avoid many undef exceptions thrown

The xmerl fork has change made by pull request on erlang/otp:
https://github.com/erlang/otp/pull/87 (already merged to maint and master)

Once Erlang/OTP is released, we don't need forked one any more.
At that time we will remove xmerl from deps and use one in OTP.
Remove xmerl from dialyzer apps

Since we're using a fork of xmerl, this prevents an error like:

```
==> riak_cs (dialyzer)

dialyzer: Could not merge PLTs since they are not disjoint
The following files are included in more than one PLTs:
["xmerl.beam","xmerl_b64Bin.beam","xmerl_b64Bin_scan.beam",
 "xmerl_eventp.beam","xmerl_html.beam","xmerl_lib.beam","xmerl_otpsgml.beam",
 "xmerl_regexp.beam","xmerl_sax_old_dom.beam","xmerl_sax_parser.beam",
 "xmerl_sax_parser_latin1.beam","xmerl_sax_parser_list.beam",
 "xmerl_sax_parser_utf16be.beam","xmerl_sax_parser_utf16le.beam",
 "xmerl_sax_parser_utf8.beam","xmerl_sax_simple_dom.beam","xmerl_scan.beam",
 "xmerl_sgml.beam","xmerl_simple.beam","xmerl_text.beam","xmerl_ucs.beam",
 "xmerl_uri.beam","xmerl_validate.beam","xmerl_xlate.beam","xmerl_xml.beam",
 "xmerl_xpath.beam","xmerl_xpath_lib.beam","xmerl_xpath_parse.beam",
 "xmerl_xpath_pred.beam","xmerl_xpath_scan.beam","xmerl_xs.beam",
 "xmerl_xsd.beam","xmerl_xsd_type.beam"]

make: *** [dialyzer] Error 1
```

You will likely need to `make cleanplt` in order to rebuild the PLT.
Merge pull request #843 from basho/bugfix/handling-empty-query-string-on-list-multipart-upload

handling empty query string on list multipart upload

Reviewed-by: reiddraper
Merge pull request #848 from basho/feature/xmerl-avoid-undef-rebased

Feature/xmerl avoid undef rebased

Reviewed-by: kuenishi,kuenishi
Ensure no mp uploads remaining in bucket creation and deletion

There was a security issue that flaws remaining multipart uploads,
where an newly created bucket may include unaborted or uncompleted
multipart uploads which was created in previous epoch of the bucket
with same name. This commit fixes it by:

- on creating buckets;
  - check if live multipart exists
  - if exists, return 500 failure to client
- on deleting buckets;
  - try to clean up all live multipart remains
  - check if live multipart remains (in stanchion)
  - if exists, return 409 failure to client

- after upgrading from 1.4.x (or former) to 1.5.0;
  - run `riak_cs_console:cleanup_orphan_multipart/0` or
    `riak_cs_console:cleanup_orphan_multipart/1` in an
    attached console to cleanup all buckets
  - there might be a time period until above cleanup
    finished, where no client can create bucket if
    unfinished multipart upload remains under deleted
    bucket. You can find [critical] log if such bucket
    creation is attempted.

This commit also inclues:
- cut out bucket related operations from riak_cs_utils to riak_cs_bucket
- riak_test (riak_cs_buckets_test) to check bucket related tests
Merge pull request #857 from basho/bugfix/cs475-check-mpuploads-squashed-rebased

Ensure no mp uploads remaining in bucket creation and deletion

Reviewed-by: shino
Add adapters to switch single/multi bag configuration
Add Bag ID to bucket object
Bag-wise pool support for object manipulation
Make storage calculation look into buckets' bag IDs
Refactor riak_test
WIP: GC of multiple pools
Call master bag instead of default bag