GUI -- Removed dependence on jQuery -- it turns out that angular implements extend().

Change-Id: I0cca98975873aa6fa1bf8258a2bedbc508d3c7d7
diff --git a/web/gui/src/main/webapp/app/fw/svg/geodata.js b/web/gui/src/main/webapp/app/fw/svg/geodata.js
index 98e0724..63fa4ce 100644
--- a/web/gui/src/main/webapp/app/fw/svg/geodata.js
+++ b/web/gui/src/main/webapp/app/fw/svg/geodata.js
@@ -130,7 +130,7 @@
             // converts given TopoJSON-format data into corresponding GeoJSON
             //  data, and creates a path generator for that data.
             function createPathGenerator(topoData, opts) {
-                var settings = $.extend({}, defaultGenSettings, opts),
+                var settings = angular.extend({}, defaultGenSettings, opts),
                     topoObject = topoData.objects[settings.objectTag],
                     geoData = topojson.feature(topoData, topoObject),
                     proj = settings.projection,
diff --git a/web/gui/src/main/webapp/app/fw/svg/zoom.js b/web/gui/src/main/webapp/app/fw/svg/zoom.js
index 8995cad..dc0e32a 100644
--- a/web/gui/src/main/webapp/app/fw/svg/zoom.js
+++ b/web/gui/src/main/webapp/app/fw/svg/zoom.js
@@ -60,7 +60,7 @@
             function createZoomer(opts) {
                 var cz = 'ZoomService.createZoomer(): ',
                     d3s = ' (D3 selection) property defined',
-                    settings = $.extend({}, defaultSettings, opts),
+                    settings = angular.extend({}, defaultSettings, opts),
                     zoom = d3.behavior.zoom()
                         .translate([0, 0])
                         .scale(1)
diff --git a/web/gui/src/main/webapp/app/fw/util/fn.js b/web/gui/src/main/webapp/app/fw/util/fn.js
index cf9e737..10cb6ff 100644
--- a/web/gui/src/main/webapp/app/fw/util/fn.js
+++ b/web/gui/src/main/webapp/app/fw/util/fn.js
@@ -21,11 +21,12 @@
     'use strict';
 
     function isF(f) {
-        return $.isFunction(f) ? f : null;
+        return typeof f === 'function' ? f : null;
     }
 
     function isA(a) {
-        return $.isArray(a) ? a : null;
+        // NOTE: Array.isArray() is part of EMCAScript 5.1
+        return Array.isArray(a) ? a : null;
     }
 
     function isS(s) {
@@ -33,7 +34,7 @@
     }
 
     function isO(o) {
-        return $.isPlainObject(o) ? o : null;
+        return (o && typeof o === 'object' && o.constructor === Object) ? o : null;
     }
 
     function contains(a, x) {
diff --git a/web/gui/src/main/webapp/app/fw/util/keys.js b/web/gui/src/main/webapp/app/fw/util/keys.js
index d163292..81d0bc3 100644
--- a/web/gui/src/main/webapp/app/fw/util/keys.js
+++ b/web/gui/src/main/webapp/app/fw/util/keys.js
@@ -92,7 +92,7 @@
     }
 
     function setupGlobalKeys() {
-        $.extend(keyHandler, {
+        angular.extend(keyHandler, {
             globalKeys: {
                 backSlash: [quickHelp, 'Show / hide Quick Help'],
                 slash: [quickHelp, 'Show / hide Quick Help'],