Add box manager

Adds box management functionality to Derelict.

* Adds `Derelict::Box` class, to represent a specific box for a particular provider
* Adds `Derelict::Box::Manager`, to manage boxes
   * Get list of boxes with `#list`
   * Retrieve a box by name and provider with `#fetch`
   * Check if a box is added with `#present?`
   * Add a box from a source with `#add`
   * Remove a box with `#remove`
* Adds `#boxes` method to `Derelict::Instance` to get a box manager for the instance