Add support for a stack of navigation controllers

This replaces the single navigation controller with a stack of modally
presented navigation controllers.

After you modally present one navigation controller, you can then push
additional views on top of it, and even continue to modally present view
controllers ad nauseum.  When you pop, you pop back the history of
navigation controllers.