Clean up Viewer balloon usage

1. Improve GeoJsonDataSource balloon.
2. Make balloon work in all cases in the Viewer.
3. Make the balloon go away when data goes away.
4. Add Balloon.css to widgets.css
5. Misc clean up to viewerDynamicObjectMixin now that it is doing multiple things.
6. Fix bug in GeoJsonDataSource because the custom position property did not implement GetValueCartographic.