- Implemented real-time state notification using OSC-UDP.

Commit sponsored by Boffins Technologies.

Notes:
  - Based on similar functionality in  CasparCG 2.1.
  - Note not all events/messages from 2.1 are implemented.

Changes w.r.t CasparCG 2.1:
  - Better performance.
  - Use UDP instead of TCP.
  - Configurable in casparcg.config.
  - Use "Microsoft Asynchronous Agents Message Blocks" API (included in VS2010+), instead of custom "reactive" solution.
osc: Renamed "server" to "client".
osc: Bug fixes and major performance, memory overhead and latency improvements.

Sponsored by Boffins Technologies (www.boffins.se).
osc: Removed timed_wait.
osc: Fixed deadlock during destruction.
osc: Reduce osc buffer size where possible.
osc: Simplify with a regular lock.
osc: Cache the buffers object.
osc:
-Removed unnecessary buffers.empty() check.
-Catch any exceptions in osc thread.
osc: Some minor cleanup.
osc: Use const_buffers instead of mutable_buffers.
osc: Cosmetics.
osc: Ignore send errors.
osc:
-Drop invalid updates.
-Improved update size calculation.
client: Use fixed 4096 size for messages.
osc: More efficient locking.
Fixed bug in channel_producer
Added support for NewTek AirPlay.

Sponsored by NewTek.
#169

Thumbnail base64 encoding not working with padding
* Created custom decklink allocator for reducing memory footprint.
* Made sure that more threads have the unstructured exception handler installed (avoids crashing the entire process in case of access violations), and thread naming for more threads.
* Ensure that if an exception occurs while rendering the diagnostic window, the window is closed instead of it stopping to respond to window events.