Silence warning for empty strings in XConfig

Currently the updater causes 14 warnings for empty strings
(e.g. "path":"") in String::Mid; after this change the warnings are
confined to malformed (single character) and zero length strings
Add API calls for recording status and keep recording setting
Re-enable output profiler
Add archive based updating mode (for buildbots)

Requires a modified updater since the manifest structure differs
significantly

It is not recommended to publish OBS with unsecured update sources,
i.e. either implement signing for downloaded resources and/or use secure
communications for downloading (preferably both)
Check updater integrity for archive based updating
Fix define usage
Fix typo in updater integrity check
Changes to update archives

Added preprocessor PropertyGroup for update archive macros
Fixed small bug in archive update code
Fix CUDA symbol loading
Remove accidental uncomment of updater defines
Fix copy&paste error in method declaration
Add plugin events for start/stop recording
Clarify callback semantics
Add plugin events for start/stop streaming

These complement the new start/stop recording events as they are called
as soon as a network connection is initiated/severed regardless of
previous encoder state
Refactored BitmapImageSource (moved core functionality into a new class - BitmapImage). Changed BitmapTransitionSource to use BitmapImage - implements #102