<NotOwningEntryRef.h>: Denote BPrivate explicitly
BCopyEngine: Add base class BEntryOperationEngineBase

It contains a helper class Entry, which allows to generalize the
BCopyEngine::CopyEntry() parameters.
Add BRemoveEngine

Similar to BCopyEngine, but it (surprise!) removes an entry.
package daemon: Package: Add RevisionedName[Throws]()
package daemon: Implement writable files handling

* Move Volume::Exception to top level and into own files.
* Add utility class FSUtils, move Volume::RelativePath there and add a
  bunch of FS utility functionality.
* Add FSTransaction, a helper class to record FS operations and revert
  them.
* When activating a package we now extract the writable
  files/directories it declares. The handling is not quite complete:
  - We don't handle merges yet. I.e. the user will have to do that
    manually for now.
  - We don't propagate issues/infos regarding the writable files (e.g.
    that a manual intervention is required) to the user yet.