Refactory with many changes

1. 不再使用spm来打包、测试、发布
2. 使用requirejs进行开发和测试的模块化加载
3. 使用karma + jasmine 替代默认的spm的测试框架
4. 支持多浏览器自动化测试，目前包括chrome, firefox, phantomjs
5. 使用karma-coverage进行测试用例覆盖率统计
6. 支持通过travis进行多浏览器测试和代码覆盖率统计
7. 使用grunt-contrib-requirejs对模块进行打包
8. 编写脚本对打包文件进行正则替换，使其成为一个通用性库。
9. 使用grunt-contrib-uglify对代码进行压缩
10. 生成sourceMap