Improved widget settings, and ability to provide custom widget settings

Fixes #60, #12, #11.

**CONTAINS API CHANGES!**

This is the first cut at improving the state of affairs surrounding widget settings dialog. The best way to see the changes is to take a look at the [demo code](https://github.com/DataTorrent/malhar-angular-dashboard/blob/widgetSettings/demo/demo.js#L124-260).

Take a look at the [updated README](https://github.com/DataTorrent/malhar-angular-dashboard/blob/widgetSettings/README.md#custom-widget-settings) for an in-depth description of how to override widget settings.

**MOST IMPORTANT CHANGE**: this method implements the overriding mechanism for widget settings