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).

Also, I will be updating this pull request with changes to the README, where the deltas can more easily be seen.