fix #1165 npm start running grunt build twice

It also refactors package.json
feat #1167 External CSS property for skins

This commit introduces a new property for skins that lets you load and use external css files.
feat #1168 New configuration for Icon Widget

When there is not a sprite url defined, the icon widget configuration is composed by a list of css classes that will be added to the html element generated.
fix  #1149 0 was not considered as an existing value in the mandatory validator
fix #1164 Some dropdowns in the flat skin are larger than expected
fix #1172 null bound value in @aria:CheckBox triggers an exception
fix #1166 Support for external hash change in page engine

When navigation is set to `hash` in the site configuration, it is now possible to change the hash manually without compromising the back/forward navigation.
Before this commit, after manually changing the hash and then navigating away to another page, it was impossible to correctly go back because the manually added hash was not correctly mapped to a page.
fix #1174 Refactoring border-radius property for widgets

Adding a macro to refactor the code for the border-radius property.
fix #1170 root map not taken into account for cssFolderPath

This commit fixes a regression introduced by commit 96c3f0591012d316db5de8325225645449ee26a7:
the root map is not taken into account for the computation of
the cssFolderPath property in CSS templates.