Page values not retaining after upload

Could probably do with someone other then myself pulling and checking.

- QuestionPages now extend AuthenticatingQuestionPage which contains common methods used when saving pages.
- Listing model contains a method to find completedPages by PAGE_ID.
- When a page is saved it will either update an existing object in the database (using update()) or insert a new object (using insert()) - this fixes the main problem and also clears out bloating of empty objects. The bug in title seemed to centre around using the insert() method to update existing objects. 

Could use the getEmail() method hee instead of calling the map explicitly, seeing as I've just done that refactor in another branch that will become redundant now :)