Remove handle and cleanup members from Methcla_SynthDef interface
Redesign asynchronous command interface

The worker thread system is now a little less typesafe interanally: Engine::sendToWorker and Engine::sendFromWorker have to be called from the corresponding context. The plugin API on the other hand is now more typesafe: An interface struct corresponding to the current context is passed to the command perform callback, making it harder to accidentally calling API functions from the wrong context.
Remove unused class NodeMap
Add reference counting to Resource
Don't call destructor from operator delete
Add boost::intrusive_ptr headers
Pass node id to node constructors explicitly to reduce dependencies
Add support for reference counted resources to the API

This makes it possible to share resource handles with the non-realtime context.
Force disk buffer read and write pointers to different cache lines
Simplify fill_buffer

If buffer size is a multiple of transfer frames, only contiguous buffers can ever be written.
Add missing constant
Fix case of buffer size equals transfer frames
Explicitly load read pointer with memory_order_consume
Close sound file immediately when playing back from memory
Make number of transfers per buffer configurable
Add comment on synth reference
Add DEBUG=1 to preprocessor defines for debug configuration
Remove unnecessary using declaration
Fix buffer offset in read_all
Simplify method signatures of Worker implementation