started working on more general page navigation history mechanism

Started by creating a PageId enumeration as an abstract identifier
for a page, and a PageStack object to keep track of which
pages the user has visited.
use PageStack for all page navigation
add "Save and test" button to EditProblemPage

this allows quickly testing the problem, and returning to the
EditProblemPage (when the user clicks the "<< Back" button)
preserve PageStack after logout

Otherwise, the entry point class (which is responsible for
switching pages) is still subscribed to the old (no longer used)
PageStack, and loses the ability to detect page change events.
Merge pull request #49 from daveho/master

add "Save and test" button to edit problem page