Maid 402 fix storage bug

Look at the File class in particular. Several parameters are forwarded to SelfEncryptor and DataBuffer. They are needed after both are destroyed during a "flush". I could've added accessors for these members instead, but I decided to create another aggregate struct that could be moved to the new class. It allowed boost::filesytem::path to be moved (swapped technically). I'm not sure its worth all the boilplate for a struct to do this.
Should the promise not be set?

Partially answering my own question, it appears that `mount_promise_` is not used at all; it is only used by `Drive<Storage>::GetMountFuture()` but I could not find any uses of this function.

If `mount_promise_` is unused, then we probably should create a task to remove it.