File class members are encapsulated, and internal lock was added.

A lock was added to the file class to properly handle multiple threads accessing the self encryptor. Actual chunk storage and incrementing is still a work in progress.

This technically completes JIRA ticket MAID-153 too.
I thought this would be acceptable since the destructor would cancel any existing timers (even without the `.cancel` call). However, I found a [post by Christopher Kohlhoff](http://sourceforge.net/p/asio/mailman/message/3802268/) that indicates this isn't a good idea.

What if I made this a `weak_ptr` (which appears acceptable according to Chris' response). I'm concerned about the callback keeping itself alive. Although, this hasn't been an issue so far (next and drive_v2 use a shared_ptr in the same way).