moved the utils to the 'util' folder
changed the main global object from NGL to NGS
feat(grunt): add changelog task

This enable to generate the changelog file dinamically
feat(grunt): add changelog task to the 'dist' task

This enables us to generate a changelog.md file on every release
chore(package.json): add main file name key/value
feat(NGS): add new event bus

This enable us to use the NGS object as the Event Bus for the application replacing Backbone.Events.

BREAKING CHANGE: replaced Backbone as the Event Bus

To migrate the code replace Backbone for NGS when suscribing or triggering events
feat(base): add version checking for hard dependencies

This enables us to have control over the loaded hard dependencies

BREAKING CHANGE:

The code will break in case any of the required hard dependencies were not loaded or its version does not fulfill the SDK needs
refactor(Base.util): underscore is now the util lib and a hard dependency of the lib

This will enables us to better manage the util functionality and make this library lighter by forcing the project who uses this library to load it.

BEAKING CHANGE: underscore is now a hard dependency and has to be loaded before pestle
refactor(extensions): remove backbone from the included extensions

This will enable us to remove Backbone as a hard dependency from pestle.

BREAKING CHANGE: Since the Backbone extension has been removed from the core library is has to be manually loaded by each project. An example is included within this codebase. Overall, here are the steps:

If you are using browserify:
1. Define the module using the extension convention
2. Require the extension
3. Add the extension to the core library

Example:
bbExt = require('./extension/backbone.ext.coffee')
c.addExtension(bbExt)

where c is an instance of NGS.Core

If you are no using browserify you could use the example included in the "example" folder within this library as a guideline.
fix(versionchecker): fix the case when the required version has a lower lenght
fix(projectName): name the library pestle instead of platform-sdk
chore(dist): add new dist version
chore(sdk): delete old dist file
fix(general.versionCompare): change the comparisson for equal versions
test(general.versionCompare): add test for the versionCompare method
test(VersionChecker): add test for the VersionChecker util
test(core): add test for having NGS as the event bus
fix(component): instantiate unique instances of module definitions

Now everytime a new component is found a new instance of the class is instantiated without touching the original module declaration.
feat(core): platform is now the namespace name
feat(core): separate addition of default extensions from it initialisation

This will allow us to attach spies on extensions during testing