Mock Promise-based IO
Rewrite Drivers to use Promise IO. Add InvertedDriver
Rename class convenience constructor to `new`
Rewrite Endpoint and Device to use Promises
Move device and id up to Endpoint, no longer any value from Sensor
Remove sensor blueprint
Add endpoint blueprint. Update device blueprint
Refactor App

Uses Promise-returning endpoints.
Remove dependency on lodash.
Add #endpointsWhere finder.
App#endpointsWhere takes properties object, not key=>value
Rewrite MessageInterpreter to expect JSON instruction payload