Added support for streaming markers through the online system and get classification results relative to markers out of the box, updated some existing online plugins accordingly. Also some optimizations and minor fixes.

Major New Features
- set_joinepos: new function to join epoched signals across epochs (orders of magnitude faster than set_merge, and handles corner cases)
- set_makepos: can now extract epochs relative to markers online/incrementally (complete rewrite)
- onl_***: generally markers can now be streamed through the online system and are visible to filters and the feature extraction

Minor New Features
- combine_structs/flatten_structs: new functions to handle structs in name-value pair lists
- set_selinterval: now supports index ranges as an option, also 10x faster on some data
- sparse_binning,cummax,arraydeal,chopdeal: new utility functions for efficient struct array and particularly event struct handling
  (with optional mex versions available)
- onl_append: now supports submission of markers accompanying the chunk
- onl_filtered: can now emit multi-epoch signals online, also can now emit signals including markers
- onl_predict: can now emit multiple outputs per prediction; also got new option EmptyResultValue to control the format of empty results
- onl_newpredictor: new argument PredictAt: allows to define markers relative to which predictions should be generated
  (and epochs should be extracted)
- onl_peek: now supports markers
- onl_read_background: now supports callback functions that also return markers
- onl_write_background: new options PredictAt, Verbose, and EmptyResultValue
- onl_simulate: aside from specifying the latency of onl_predict calls, now allows to use the pipeline with marker-locked prediction
  (via TargetMarkers argument which takes the same role as PredictAt in some other functions)
- run_readlsl: now supports reading synchronized markers from marker streams
- run_writelsl, run_writesnap: added PredictAt option
- run_readdataset: now supports reading markers
- utl_buffer: new utility function for buffering of subsequent signal structs
- utl_fileinfo: now supports empty file paths
- utl_find_filter: now supports returning the subscript path to the matching location in the data structure (for use with subsasgn)
- utl_loadmodel: new utility function for loading BCI models
- utl_picktimes: minor optimization
- play_eegset_lsl: new function to play back a dataset through LSL

Minor Changes
- arg_define: now a bit faster in direct mode, slight simplifications
- declare_properties: quite a bit faster
- set_chanid: a bit faster
- set_insert_markers: more efficient for very large insertions
- set_picktimes: minimal optimization
- set_targetmarkers: can now be used online (more efficient), merged the various EventTypes/EventMap formats into a single argument
- exp_beginfun: faster during online processing
- flt_spectrum: more efficient
- hlp_scope/hlp_resolve: faster
- onl_newpipeline, onl_filtered, onl_newpredictor: simplified quite a bit
- utl_add_online, utl_complete_model: removed some now-obsolete model properties (prediction_window and subrequests)

Minor Fixes
- flt_resample: now resamples marker latencies more correctly (was off by 1 before)
- onl_append: fixed handling of optional timestamps
- ParadigmRSSD: now works also with ICA types other than AMICA
- utl_resolve_streams: fixed rare crash bug when multiple candidate streams needed to be disambiguated based on supported channels and types
- vis_filtered: minor documentation fix
Merged with updated master branch contents...
Updated existing online writer plugins to support prediction relative to markers (PredictAt option), improved fault tolerance in the online plugin system.
Added the ability to hot-swap the classifier in run_writelsl.
Fix in utl_find_filter: did not work when the desired filter is the top-level element.
Slightly improved classifier hot-swapping capability in run_writelsl.