realtime: extend queue, implement packet_queue

* Extend lockfree single-producer-single-consumer queue
  with methods for batch pushing/popping.

* Implement packet_queue on top of queue:
  it is a queue of arbitrarily large byte packets.
realtime: Runner: add OSC communication

Implement setting controls and receiving control change notifications
using OSC over UDP, using oscpack and our lockfree thread-safe
packet_queue.

More work is needed to make this completely real-time safe:
mainly due to usage of std::string which involves dynamic memory
allocation.
realtime: UDP receiver: catch & report failure to set up socket
apps: runner: add options for OSC communication
system: enhance MarSystem and MarControl interface

* Let simple accessors return const references to members.

* Let MarControl store name without type separately.

* Add methods to MarSystem to find sub-systems and sub-controls
  with paths containing names only (without types).
realtime: improve OSC communication

* Make it completely real-time safe (no unnecessary dynamic allocation).

* Use control paths without types.
  (e.g. system-name/system-name/control-name)
scripting: silence couple compile warnings
realtime: Runner: fix invalid pointer dereference
scripting: make use of enhanced MarSystem interface
fix couple issues of scope
avoid unsupported 'alignas' with MS Visual Studio
express memory alignment in bytes, not bits
realtime: provide efficient memory alignment with MS Visual Studio
inspector: add label for currently opened file path
inspector: clear views on failure to open another system
logging: add ability to plug in custom logging functions
inspector: add message-reporting dock widget
ClassificationReport: output text via MrsLog
scripting: report parsing errors via MrsLog
inspector: signal view: plot spectrogram in black & white