PanelManager checks to see if a panel el exists before trying to remove it.
WeatherPanel uses Google Geolocation lat() and lng() functions.

Should prevent this from breaking again in the future.
Adds a quick n' dirty launch screen with previews of all created Dashboards.
Fixed inconsistent indenting in Dashboard view.
Stop panelManger from firing layout() every time a panel is rendered.
The first rendered panel creates panelManager instead of the dashboard doing it.
Moves panel sorting into the .find() on the client (instead of the publication from the server)
Pretty major updates to PanelManager

- Turns out Packery automatically adds all child elements of container to it when created, so we now longer want to add *all* panels to Packery on render (it will create duplicates).

- Disable isInitLayout() for Packery and manually trigger layout after packer has been created, draggabilly has been added to existing panel, and dragging events have been added.

- When a Panel renders, it will still trigger _addPaneltoPackery, but now it will first check to make sure the panel hasn't already been added, and then add it and bind dragging if necessary.