Container Enhancement

- Containers should have functionality to be able to support the listing capability by recording the marker value
- Containers should have an idea of the project/vault (as appropriate) they belong to
Refactor

- Refactored deuceclient.api.vault.Vault to be more consistent with how it stores information, using the __properties dictionary, with the other objects in the API
- Added the missing blocks and files properties to the deuceclient.api.vault.Vault
- Refactored deuceclient.client.deuce to remove the __vault* functions
--- Most all functions now require the vault parameter to be the Vault object not the vault name; there are a few exceptions they should be well documented (if not, that's a bug)
--- TypeError is raised in explicit check cases
- Refactored deuceclient.client.deuce to change ProjectId property to project_id for consistency
- Refactored deuceclient.client.deuce for how to get a Vault
--- CreateVault now creates a vault and returns a Vault object
--- Added a GetVault to retrieve a vault object for a verified existing vault
- Integrated the Block listing to add the return value to the Vault's blocks property
Update

- Updated comments
- Added tests to ensure that the vault is the proper thing in the rest of the cases
Refactor: Use Block

- Refactored Deuce Client Upload Block to only accept deuceclient.api.Block as the block data parameter instead of the separate parts
- Added len() support so that len(deucececlient.api.Block()) will len() the data contained by the block
Bug Fix

- Corrected the implementation of the len(block) support
--- needed to handled when the block data was set to None
--- added additional tests
Refactor: Delete Block

- Refactored to use the Block object
Refactor: GetBlockData -> DownloadBlock

- Renamed from GetBlockData to DownloadBlock for consistency
- Refactored to use the Block object
Refactor: Create File

- Added URL to the File object
- Refactored CreateFile to create the File object, add it to the Vault object, and then return the File ID
--- File ID and URL are stored in the File Object
--- File ID is presently take from the X-File-ID header, assuming it will be provided by Deuce (PR in on for that)
Refactor: Assign Blocks To File

- Refactored to use the new functionality
--- negative tests for validating function input are not yet present
Enhancement: Test Coverage for AssignBlocksToFile

- Full tests coverage for building the JSON data for assigning blocks to a file
Merge branch 'master' into enhancement_api_integration
Refactor: Get File Block List

- Updated all comments in deuceclient.client.deuce to denote when the function stores something on success
- Refactored GetFileBlockList to store the offset data for the file
--- updated tests to use realistic data
Enhancement: Validation

- Enforce some parameters using the validation
Enhancements, Bug Fixes, and final integration

- Enhancement: Added logging of the response from the server
- Enhancement: Dropped the blockid from the parameters for the block upload and calculated the sha1 on the fly since it is enforced by Deuce any way
- Enhancement: Finished integration of the new API objects into the usage by the Deuce Shell
--- Assign Blocks To File command-line was dropped because it is no longer practical to do with its present incarnation
Enhancement - better showing of the vault stats
Bug Fix:

- data coming back may not always be JSON even if that's what is expected.
Bettering Return Values - returning lists

- Return a list of block ids instead of true when we add blocks
Merge branch 'master' into enhancement_api_integration
Bug Fixes

- documentation for one of the functions was incorrect and did not match the parameter list
- the patcher for the Keystone Client to function with Rackspace Identity was not being tested
Bug Fixes

- Fixed a couple grammar errors
- File Block Assignment no longer matched Deuce