[CDF-349] - Dashboards.removeComponent does not remove components with the same name, if an object is passed
	- Dashboards.removeComponent removes components when a string or and object is passed
	- Dashboards.removeComponent also removes the component from the global window object if globalContext is true
[CDF-351] - Dashboards.addComponents does not check for components with the same name
	- Dashboards.addComponents replaces components with the same names as the new
	- Dashboards.addComponents also adds the components to the global window object if globalContext is true
[CDF-348] - Dashboards.getComponent[ByName] should not use eval, for consistency with .getParameterValue
	- Dashboards.getComponentByName returns the object from the global window object if globalContext is true, or from Dashboards.components otherwise
[CDF-353] - Dashboards._isParameterInModel should look for the parameter in the correct context
  - Dashboards._isParameterInModel now looks for the parameter in the correct context
  - Parameters with null value are allowed and parameters with undefined value are overridable by addParameter
  - Dashboards.setParameter doesn't allow to set a parameter with an empty string as it's name
  - Dashboards.parameterModel and Dashboards.persistBookmarkables are only called by Dashboards.setParameter if the parameter is set in the target context object
  - Reviewed and added tests for Dashboards.addParameter and Dashboards.setParameter
[CDF-292] - TextInputComponent lifecycle: postchange is trigger twice
  - Validate if the value has changed to trigger Dashboards.processChange() only when necessary
  - Removed keyup event of TextareaInputComponent, Dashboards.processChange() is only triggered on change event
  - Added sample for TextAreaInputComponent
[CDF-349] - Dashboards.removeComponent does not remove components with the same name, if an object is passed
[CDF-351] - Dashboards.addComponents does not check for components with the same name
[CDF-348] - Dashboards.getComponent[ByName] should not use eval, for consistency with .getParameterValue

  - fixed documentation according to JSDoc 3
  - reverted changes in Dashboards.getComponentIndex and Dashboards.removeComponent to support a component and an index as arguments
  - added more tests
Merge pull request #250 from afrjorge/CDF-353

[CDF-353] - Dashboards._isParameterInModel should look for the parameter...
Merge pull request #252 from afrjorge/CDF-292

[CDF-292] - TextInputComponent lifecycle: postchange is trigger twice
Merge pull request #247 from afrjorge/CDF-349

[CDF-349] - Dashboards.removeComponent does not remove components with t...