Make srweb relative links work properly.

This adds a ROOT_URL variable which contains the root of the srweb
install and a mechanism for replacing this in html thrown at the user.
Modify the data.json so that all the local links contain this variable
where needed so that docs links and images work in dev installs.

Change-Id: Idb28a61f637e9eb02ad7f679a47060ed8afd0386
Whitespace fix the added css rules to match the rest of the repo.

The standard for this project is tabs, so use them here.
This commit intentionally doesn't change the table.charger_lcd,
for which a fix is already pending on master.

Change-Id: I93ec84489112670b2b520a6265823f26decdf4f2
Prefer markdown syntax for the nothing loaded header.

This is more in keeping with the rest of srweb.

Change-Id: Id04084c79b00c7de7d49bb42062fac4a5a182462
Add the interactive troubleshooter

This patch implements the interactive troubleshooter as per trac
ticket #1594 and #1011. A link has been added to the documentation page
to access the troubleshooter.

The troubleshooter consists of 4 main files: data.json contains the tree
of questions and answers, main.js is the main logic for the
troubleshooter, styles.css contains styles specific to the
troubleshooter and then interactive_troubleshooter connects everything
together.

This commit is a squashed commit from the troubleshooter branch of
srweb-devel to ease merging via gerrit and the work has been done by
Chris Baines, Tom Leese, Freddie Nash and Helena Weare.

Change-Id: I02b382c37041bf4ad5afccc63434ada02ddff22a
Improve the troubleshooter description.

It does a lot more than just help with code.

Change-Id: I9465844fe38456f5e36a53cac3942c84589f204e
Improve an alt attribute which was unclear.

If seen without realising it was an image placeholder it was
confusing that this text wasn't just part of the message being
displayed.

Change-Id: I0c21c95f1203de70d2152a8779390f5b732cacbf
Clarify some post-question messages.

Use Ruggeduino rather than IO board, since this is its proper name.
Abuse the <abbr> tag to provide a description of the word 'negate'.

Change-Id: Ibdd56702409258480ff8f0f717a0b5edfd1eb36a
Remove redundant reset support.

We now reset the page by directing the user to a fresh load of it,
thus avoiding the need to do this. Replace the init method with
what was the reset method so that it is still called when the page
loads.

Ensure that we only set the anchor portion of the url if it's non-empty,
thus avoiding moving the user from ..shooter to ..shooter#, which
adds a pointless entry to the browser history, and makes navigating
'back' hard and annoying.

Change-Id: I6703a0222897e993cc36da01627c1f02113a2c1b
Add testing of the troubleshooter's data file.

This is written in python as I didn't feel like adding a PHP unit-
test framework, and lots of SR projects already use nose, so there's
a pretty good chance blueshirts will already have it around.

These check that the file exists, in the right place, is valid json,
and matches the shema laid out by the current state of the file.
It also checks that all the quetions (other than the root) are linked
from another answer, and that all the links to questions are to ones
which actually exist.

2014-02-19 Patch set 2: rebased.
2014-02-19 Patch set 3: support python 3 by not using iteritems().

Change-Id: Ia11318895e6548819e6ac31a814001254d5db41f
Merge "Add testing of the troubleshooter's data file." into troubleshooter
Provide direct access to the (live) team-status data.

Add a new top level page which returns a json dictionary of live
team-status information. The data returned is the same as would be
displayed on the team's own pages, but allows it to be used in more
interesting ways by removing the need to scrape the HTML.

2014-03-15 Patch set 2: tweak variable name for clarity.
2014-03-15 Patch set 3: Better variable names fixes.

Change-Id: I7c7b9f402f1b7592af3a1b0e65a0c3905ef8a229
Make sure error message is displayed

The success callback will only be called if the JSON was parsed
correctly, therefore another failure callback is required to correctly
display the error message.

Change-Id: I6961cbb509c44b6acb8371174fdd8d5ed22fba85
Add instruction to try a different USB stick

Add a new node to the tree which explicitly asks the user to try a
different memory stick if the Power Board lights are on but the
screen is black.

Change-Id: I08cef4133da7e5746993f17d318ddadbd802aed3
Ensure the ROOT_URL replacement doesn't end with a '/'.

This causes issue when the value is '/', which is on the live site,
as it results in the urls being '//something', which is interpreted
as being a scheme-relative url, rather than a root-relative one.

Change-Id: Ie5fe3a72cec77a1a778cb7a45685b38ff395831d
Add a constant for whether we're in a competition.

This will be used to make the front page (and other things) switch
over to showing competition mode things at the right time.

Change-Id: I58f7b5357b63022247109e0d2448d7ee31e624ca
Remove the 'live' page.

This is a remnant of last year's competition, and is no longer needed.

Change-Id: Icc0276b6fdbce552a2faad73d14cd6895982f0d2
Bump tickets submodule to fix a college regex

Two submodules down, this is matching college-[0-9] which worked in
previous years, but now college formats are college-[A-Z]. This bump
pulls in some commits that address this matter.
Merge "Provide direct access to the (live) team-status data."
Merge "Add a constant for whether we're in a competition."
Merge "Remove the 'live' page."