Refactor to use init functions rather than page classes

Too much is happening in the constructor. As a group, they get very messy very quickly.

Cause Jack Diederich told me so.

Stop Writing Classes

The signature of "this shouldn't be a class" is when the class has two
methods, and one of them is the constructor. Any time you see these
signs, you probably should have just written a function.

– Jack Diederich

Also, the 'new' operator makes testing difficult.
See
http://misko.hevery.com/2008/07/08/how-to-think-about-the-new-operator/
for a better way to think about using it.
Merge pull request #1 from will-ob/functions-not-classes

Refactor to use init functions rather than page classes