Zuul status page: Redesign and fix bugs

status.html:
- Added eventqueue-length status (was already present in production
  but not committed here yet).
- HTML5 markup.
- Remove unused jquery-visibility.min.js and jquery-graphite.js.

status.js:
- Clean up (various js best practices and consistent coding style)
- Use empty() instead of html('').
- Use text() for text instead of html().
  html() will trigger the parser where text will simply create
  a text node with the string literal, much faster, safer and
  semantically correct.
- Fix implied global variable leak 'result'.
- Fix reference error that crashes/freezes the page
  Property data.trigger_event_queue and data.trigger_event_queue
  can be undefined, in which case data.trigger_event_queue.length
  causes an uncaught TypeError to be thrown.
- Use a closure instead of polluting global scope.
- Rewrite object oriented.
- Added 'demo' feature for easy local testing.

Downstream commits at
https://gerrit.wikimedia.org/r/#/q/project:integration/docroot+topic:zuul-js+branch:master+owner:Krinkle+is:merged,n,z

Change-Id: Iddd4e2787f2e2eb27bf428f733fbb8b4a9d162d5
Reviewed-on: https://review.openstack.org/26416
Reviewed-by: James E. Blair <corvus@inaugust.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Jeremy Stanley <fungi@yuggoth.org>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
diff --git a/etc/status/README.rst b/etc/status/README.rst
new file mode 100644
index 0000000..5b4a6bb
--- /dev/null
+++ b/etc/status/README.rst
@@ -0,0 +1,27 @@
+Zuul Status
+====
+
+Zuul Status is a web portal for a Zuul server.
+
+Set up
+------------
+
+The markup generated by the javascript is fairly generic so it should be easy
+to drop into an existing portal. All it needs is
+``<div id="id="zuul-container"></div>``.
+
+Having said that, the markup is optimised for Twitter Bootstrap, though it in
+no way depends on Boostrap and any element using a bootstrap class has a
+``zuul-`` prefixed class alongside it.
+
+The script depends on jQuery (tested with version 1.8 and 1.9).
+
+The script optimises updates by stopping when the page is not visible.
+This is done by listerning to ``show`` and ``hide`` events emitted by the
+Page Visibility plugin for jQuery. If you don't want to load this plugin you
+can undo undo this optimisation by removing the 9 lines using this on the
+bottom of ``app.js``
+
+To automatically fetch the latest versions of jQuery, the Page Visibility
+plugin and Twitter Boostrap, run the ``fetch-dependencies.sh`` script.
+The default ``index.html`` references these.