AMD/Require.js to UMD/Browserify

**Status**: *For Review*
**Reviewers**: @noahadams

## Changes
- Replaces AMD definitions in each module with UMD definitions to support both Require.js and Browserify.
- Uses Browserify rather then Require.js to remove dependance on the Almond.js loaded.
- Reduces size of minified non-gzipped build from 24.6KB to 21.6KB
  
## How to test-drive this PR
- Ensure that all tests work, and try on a real site

## Notes:
- Motivations for this change:
    - Move away from needing to include almond.js to reduce size of build. As well, including almond.js makes no sense for mobify.js as nothing is loaded asynchronously. Browserify fits this bill better.
    - Why we didn't go with amdclean: it's use of esprima does not give a 1 to 1 mapping of generated file to individual built file.
    - Uses UMD rather then moving to CommonJS-only for a few reasons:
        - Keeping AMD definition ensures tests still work since the modules can be loaded via require.js
        - Keeping AMD definition ensures that any libraries that requires in modules separately still work, preserving backwards compatibility.