Data source refactor

This turned out to be more of a straight switch over of DataSource to ES5 properties then I thought it would be.  It also includes some cleanup and other changes from the `dataSourceBrowser` branch that are ready to come in before the rest of it is.