Logical Device Support

**This is not ready for merge!**

Implements logical devices with volume support.

While this works, it's incredibly slow, considering the number of callbacks/network requests at work. To get around this, we'll likely need to maintain client-side state for volumes and use event listeners to keep up to date.