chore(grunt): adds grunt-conventional-changelog

see http://github.com/btford/grunt-conventional-changelog
chore: ignore dist and out directory
chore(grunt): adds load-grunt-tasks module

kills lines of code :)
feat(publisher): add and config component-publisher system
feat(publisher): change travis scripts to work with the component-publisher system
chore(grunt): clean up unused tasks
feat(grunt): add ngmin build all subcomponents in dist/sub
feat(grunt): use ngmin in the 'dist' task
fix(publisher): rename sub componenet stuff
feat(travis): add sub component auto publishing :)
feat(grunt): quality code more strict
fix(publisher): don't throw error when 'dist/sub' don't exist
feat(grunt): new 'serve' task

- add livereload on the builded gh-page
- fix the existing watch task
style(jshint): first global strict correction

 - boss : "Use '!==' to compare with 'null'"
 - globalstrict : "Missing 'use strict' statement"
style(jshint): Mixed double and single quotes correction.
fix(mark): TypeError: input is undefined
style(jshint): remove unused variables
fix(ui-scroll): 'setOffset' is not defined.

I have no idea of what it supposed to do.
I fixed it by returning the value given in the function argument but I bet that it's not the behavior we want -_-
fix(ui-scroll): 'isArray' is not defined.

I guess that we want angular.isArray here
fix(ui-scroll): 'newitems' is not defined.

Must be a typo