FLUID-4794: updating progressive enhancement

Adding in two new functions to the progressive enhancement: check and forget. The check function takes an object where the keys will map to the static environment if the value is a function that evaluates to true. This can be used, for example, to test browser features and only set the static environment if they exist. The forget function takes a list of keys to remove from the static environment.
FLUID-4794: Removed deprecation comments

Removed comments about deprecating the progressive checker components and it's functions, as they will likely still be needed.
FLUID-4794: updating check to not rerun checks.

If a check is already registered in the static environment, it will not be re-run; rather the original value will be maintained. Updated the unit tests to reflect this behaviour.
FLUID-4794: namespaced check and forget functions

Placed the check and forget functions under the fluid.progressiveEnhancement namespaces.
FLUID-4794: type to key conversion

Added a function to convert typeNames to strings that are safe to use as keys (those that don't have "."). Replaces all "." with "-". Also added in an empty object which will hold these keys, fluid.progressiveEnhancement.checked.
FLUID-4794: Updated the check function.

Updated the check function to use the fluid.progressiveEnhancement.typeToKey function to ensure that the keys in the static environment are valid. Additionally, it will record all of the keys, and the results of the check into the fluid.progressiveEnhancement.checked object. If a key is already found in the checked object, the functions will not be rerun. The forget function will be updated shortly to make use of the checked object for forgetting single and all checks.
FLUID-4794: modified the forget function

Changed fluid.progressiveEnhancement.forget to remove only a single key based on the typeTag name. It will also only remove keys that have been added via fluid.progressiveEnhancement.check. This is to prevent the removal of keys that were added by other mechanisms. In addition to the key being removed from the static environment, it is also removed from fluid.progressiveEnhancement.checked.
FLUID-4794: add a forgetAll function

Added a function, fluid.progressiveEnhancement.forgetAll to remove all the results of the checks.
FLUID-4794: refactored the typeToKey

Refactored the fluid.progressiveEnhancement.typeToKey function. It now uses an externally defined value for replacing ".". This is now set as the fluid.progressiveEnhancement.sep property and defaults to "--".
FLUID-4794: progressive enhancement for uploader

Modified the progressive enhancement and uploader to work with the new check function. Also fixed the unit tests.
Merge branch 'master' into FLUID-4794-attempt2
FLUID-4794: changing the namespace

Changed the namespace from fluid.progressiveEnhancement to fluid.enhance
FLUID-4794: Fixed typo
FLUID-4794: refactored tests.

Refactored the progressive enhancement tests to remove duplicate assertion code.
FLUID-4794: removed hasOwnProperty

Removed the use of hasOwnProperty in favour of checking if the property is undefined or not. It should never happen that the property itself contains the value of undefined.
Merge branch 'FLUID-4794'

* FLUID-4794:
  FLUID-4794: removed hasOwnProperty
  FLUID-4794: refactored tests.
  FLUID-4794: Fixed typo
  FLUID-4794: changing the namespace
  FLUID-4794: progressive enhancement for uploader
  FLUID-4794: refactored the typeToKey
  FLUID-4794: add a forgetAll function
  FLUID-4794: modified the forget function
  FLUID-4794: Updated the check function.
  FLUID-4794: type to key conversion
  FLUID-4794: namespaced check and forget functions
  FLUID-4794: updating check to not rerun checks.
  FLUID-4794: Removed deprecation comments
  FLUID-4915: linting
  FLUID-4915: args defaults to [] for apply
  FLUID-4794: updating progressive enhancement