fixed function name. Added settings function.

Added keyboard thread termination message.
Added settings set/get functions to client API

- setting setter function has internal handling. TODO: callback to
client.
- added missing SmartSizing param
Callback function handling

Added possibility for the client to register for callback from FreeRDP.

Currently supported callback events:
- setting value changed
- connected
- disconnected
Implemented writing RDP file to disk

TODO: Optimize by only writing the fields that have a value i.e
~((size_t) file->FieldName) != 0

Fixed wfi leak.
Fixed insufficient mem alloc.
RDP file writing optimization

removed function freerdp_get_connection_type

TODO:
- validate presence of all fields
- update cmdline.c to use set_param functions to modify settings.
Cleaned up settings, removed duplicate functions

param change callback mechanism moved to settings.c

Started replacing
settings->Field = value
with
freerdp_set_param_XXX(settings, FreeRDP_Field, value);
wf_toggle_fullscreen: change hwnd parent

Also: do not lose focus
wfreerdp: added MultiMon support (fullscreen only)
Smart sizing, dual monitor in client app

Scaling functions: do not scale with a ratio > 1.
fixed fullscreen toggle positioning, smartsizing

Also: added maximum window size
wfreerdp: scrollbars, aspect ratio smartsizing
Added System menu for "Smart Sizing". Small fixes

Fixed an issue where the scrollbars were not disappearing when
maximizing window.
wfreerdp: fixed upscaling
wfreerdp: resize window on setting smartsize off
libfreerdp-core: start implementing server-side alternate secondary drawing orders
libfreerdp-core: stub and implement many new server-side graphical orders
libfreerdp-client: internal channels code cleanup
libfreerdp-client: split channels code into multiple files
libfreerdp-client: propagate and export pInterface extended channel pointer
libfreerdp-client: export and register successfully interface pointer for channel