Add check to only create the billboard and label in cesium is the geographic location is valid.

Fixes #2600.
Revert "Add check to only create the billboard and label in cesium is the geographic location is valid."

This reverts commit 2541c151879be9e3f029fdee0190099d14ddde8f.
Add check to only create the billboard and label in cesium is the geographic location is valid.

This reimplements 2541c151879be9e3f029fdee0190099d14ddde8f.
Migrate command-center to threejs.  Fixes #2663
Upgrading bundle to latest baseline of websocket-rack gem
Updated regex to capture only .vwf.html files Fixes #2637
Update to regex expression format pattern matching. Fixes #2637
Command-Center; add blank tv screens to the side wall televisions.  Fixes #2557
Remove need for ./Log directory for Nodejs server default LogLevel.
Move processing of load portions of URL out of VWF::Pattern and into
VWF::Application::Persistence.  Update editor panel and pattern test
to work with the slightly changed URL syntax for loading saves that
this produced.

Fixes #2654.
fixed material clone error
Fix Google Chrome location error in cesium-webrtc. If the location query returns and invalid response and presents an error, the billboard and associated label will be hidden.

Fixes #2648.
Fixes #2600.
Move the `transforms.transit` normalization just before the socket send.

Parameter and result values need to be normalized before they are
converted to JSON and sent to the reflector. Specifically, Array-like
objects must be converted to Arrays so that they pass through JSON
serialization and deserialization properly.

Actions initiated by views and sent using `kernel.send` weren't being
normalized this way.

This commit moves normalization into `kernel.send` and `kernel.respond`
to ensure that it is applied consistently for each outgoing message.
Other `transforms.transit` normalizations done in anticipation of the
result being sent to the reflector are redundant and have been removed.

The patch to explicitly convert array-likes to arrays in view/threejs is
now also redundant and has been removed.

Fixes #2666.
Alters marbles material definitions in the YAML so that they properly
identify materials in the collada model files.

Fixes #2672.
Add additional mod to Rob's Asset Cache Material Clone fix (315ca5ff079043e4f658946952d7bf136b34b217).  Fixes #2617
Use SSL WebSockets for SSL applications. Fixes #2674.
Select the correct socket.io port when the application uses the default.

References #2674.
Accept a single item in addition to an array for behaviors and scripts.

Allows the JSON or YAML:

  {
    implements: [ "behavior.vwf" ],
    scripts: [ "this.hello();" ]
  }

  ---
  implements:
  - behavior.vwf
  scripts:
  - |
    this.hello();

to reduce to:

  {
    implements: "behavior.vwf",
    scripts: "this.hello();"
  }

  ---
  implements:
    behavior.vwf
  scripts: |
    this.hello();

Closes #173.
Process scripts in a separate async block.

This is in preparation for loading scripts from external resources,
which will be an async operation.
Load scripts from external URIs.

Now supports:

  ---
  scripts:
  # Inline (existing functionality)
  - |
    this.initialize = function() { ... } // as a string
  - text: |
      this.initialize = function() { ... } // with explicit text/type id
	type:
	  application/javascript
  # External
  - source: script1.js  # loaded from script1.js
  - source: script2.js  # from script2.js, with explicit type
    type: application/javascript

  ---
  scripts:
    source: script.js  # single script

  ---
  scripts:
    source: script.js  # single script with explicit type
    type: application/javascript