Add support for matches with fewer than 4 teams

The corners that are not being played at will be hidden.
Add support for error objects

If an error is returned when querying for a match, null will be given
back rather than a Match object which holds no information.
Add an API_ROOT variable to enable deployment.

This allows the deployment scenario to serve the API somewhere other
than the root of the server.

Change-Id: I4cdaf3fc468d92e46ba04a2c340d827c5b7057d1