Implementation of IoC and unit tests for website.

Reviewers: Sabre070

Maniphest Tasks: T39

Differential Revision: http://code.redpointsoftware.com.au/D28

Differential Revision: http://code.redpointsoftware.com.au/D29