Setup

I'm submitting this as a PRQ now as it (shouldn't) make breaking changes to production, however does mean that development can be done without access to the production environment.

Even more than usual, I recommend testing these changes in one of the test directories first before putting it live to the general populace (or potentially even waiting off until after the end of term)
Technically adding the empty() check does fix a bug in master, but it has never manifested because it'd only appear if our terms is not populated properly, which is something we haven't screwed up yet (apart from the 48 hours thing the other week but shh)