refactoring

- split the grunt task into task processing and the tasks for every option
- add unit test for every single task
- remove npm as it not belongs here