Geofencing GCS support

This PR is for adding GCS support for uploading GeoFences. There is currently no support for visualizing the geofences. In order to do this justice, we would require a 3D modeling program, and that is outside the scope of GCS, much less this PR. There is only a widget, copied from the pathplanner widget, for manipulating geofence points. 

The easiest way to add a geofence is to create one with Sketchup and then export to KML. In a subsequent PR ruby scripts for doing just that will be added. (Currently the scripts work perfectly, but the UI needs to be simplified in order to keep user confusion to a minimum.)

The code tests that the geofence is closed, sometimes referred to as "watertight". Effectively, if every edge is shared by two and exactly two faces then in 3D space the polyhedron is a closed 2-manifold. (aren't you happy you asked?)

Note: This cannot be considered ready for merge until both libKML and geofencing are merged.