Make part.size and manifest crypto optional in initializers
Refactor bundle/upload code, add bundle-and-upload

This commit move all major image bundling and uploading code into a pair
of mixin classes, then uses them to write new implementations of
euca-bundle-image, euca-upload-bundle, and euca-bundle-and-upload-image.

TODO:  Upload policy support (TOOLS-416)

Implements TOOLS-415