[FEAT] (Dashboards.normalizeValue) New method for starting to kill the "empty" value confusion. The following are all considered equivalent, and converted to null: null, undefined, "", [] .
[FEAT] (Dashboards.isArray) New method for uniformizing what is considered an array accross multiple component implementations.
[FIX] (SelectMultiComponent) An empty value, compared to a null value, was being considered a value change and caused the dashboard processing it on startup.
----
[FEAT] (Dashboards.equalValues) New method abstracts the logic required to compare CDF parameter values, whether they are multiple or not.
[FEAT] (SelectMultiComponent changeMode) Added options changeMode and changeTimeout, applicable whrn isMultiple is true.
    The default changeMode is 'immediate' and corresponds to legacy behavior.
    The new changeMode is 'timeout-focus' and waits for a given time before considering a change, a change.
    Care was taken to support Android and iPad/iPhone. In this devices, the immediate mode is used, cause they already show a popup that allows the user to make multiple choices.
    Yet, the code now guarantees that a change is only signaled when the user dismisses the popup.
----
[FEAT] (Dashboards) New "eachValuesArray" method for enumerating the commonly used values array.
[FEAT] (Dashboards) New "parseMultipleValues" method which contains common logic for parsing a parameter value into its multiple values.
[FEAT] (InputBaseComponent) New "#_getParameterValue" method which contains a many times repeated pattern of getting and evaluating the value of a component's bound parameter.
[REF] (SelectBaseComponent) Refactored the code. Also, in #draw explicitly declared local variable "selectHTML" and removed unused variables "hasValueSelected", "isSelected".
[FIX] (SelectBaseComponent#draw) A bug where the firstVal variable would remain undefined, despite existing at least one valuesArray element.
[FIX] (SelectBaseComponent#draw) The whole currentIsValid determination was erroneously validating possible values (valuesArray) against the currentValues, instead of the opposite.
[FIX] (SelectBaseComponent#draw) When !defaultIsEmpty and no currentValue existed an parameter change would be fired despite the assumed default value would be empty as the initial one.
[FIX] (SelectBaseComponent#draw) Normalized the empty/invalid condition for assuming a default value accross the multiple and non-multiple cases.
[FIX] (MultiButtonComponent#draw) A NPE bug that could occur if the current value was «null».
[FIX] (input.js) Some other inadvertently global variable fixes and small code cleanup/refactoring.
----
[FEAT] (Dashboards.getComponentIndex) The single argument now also supports a number value.
[FEAT][CHG] (Dashboards.removeComponent) The return value is not a boolean indicating if the component existed anymore, but the removed component when existing. Also, the single argument now also accepts the index of the component to remove.
----
[FIX](Dashboards._castControlToClass) While searching for the first of a set of candidate class names, ignore any global name whose value is not a function.
----
[FEAT](Dashboards.bindControl) The control.type implementation is now only applied to a control if it is not already an instance of that type. This allows that Dashboards.addComponent or, directly, Dashboards.bindControl, can be called even in cases where a control was created (dynamically) directly as new ControlType().
[FEAT](Dashboards) Added new methods to allow scenarios where dynamically generated components must be maintained: Dashboards.addComponent (which allows specifying the insertion index as well), Dashboards.removeComponent and Dashboards.getComponentIndex.
[FEAT] (SelectBaseComponent changeMode) Readded the 'timeout-focus' value of option "changeMode".  Distant scrolling is now handled by resetting the timeout counter when scroll occurs. Also, different timeouts control click/select changes ans scrolling.
[FEAT] (SelectBaseComponent changeMode) Moved option changeMode from SelectMultiComponent to the base class. Removed option changeTimeout. ChangeMode now only has options 'immediate' and 'focus'. Timeout behavior was still not good in scroll-to-distant-item selection cases.