Get judging groups from teams rather than the schedule

If the schedule isn't loaded, we still have judging groups and they are
assigned to the teams.
Properly support missing information in the subjective web app

If there is no organization or schedule loaded, don't output "undefined"
or "null".
Merge branch 'ticket.25.subjective-judging-group'
Merge branch 'master' into rec-2014
Handle not specifying a tournament column in team upload

If the spreadsheet of team information doesn't have a column for
tournament the tournament column variable may be set to the empty string
rather than null. We need to check for this and treat it the same as
null otherwise the SQL is invalid.
Support getting online resources from a cached page

Since index.html is cached for the subjective application if it's loaded
from the appcache the calls to load data from the API will fail unless a
network section is added. See gotcha #5 on
http://alistapart.com/article/application-cache-is-a-douchebag.