Use PostgreSQL 9.3 on Travis CI

Previously, the default version of Postgres was being used by Travis,
which was occassionally causing debugging issues because it is a different
version to the one used by Heroku. The Postgres version used by Travis has been
set to match that used by Heroku.

https://trello.com/c/DkL0Fl5m
Set up Segment.io

Previously, everytime we wanted to add a new monitoring service to the
application we would have to add another snippet, which was proving to be
cumbersome. Segment.io has been added so that we only need one snippet for all
monitoring services.

https://trello.com/c/lLzZEqTb
Only create a new basket when needed

Previously, a new basket was being created whenever a user visited the homepage,
which was causing unneccessary data to be added to the database. The Pages
controller has been updated to only load existing baskets and return a null
basket if no basket exists.

https://trello.com/c/I9gBjsd3