Devoncarew navigation

An initial implementation of navigation history. This:

- adds a navigation history manager class. Clients change the navigation manager in order to change Spark's current location. The manager fires events to indicate the current location. The UI updates itself based on the state of the navigation manager, including the history buttons.
- two buttons, which listen for the enablement forward and back. The location of the buttons is provisional.
- some cleanup for the code to open files - it had grow a bit over time
- added two common key-bindings

We'll probably need to do more work in the future to better populate the navigation manager.

@dinhviethoa

![screen shot 2014-05-02 at 9 39 54 am](https://cloud.githubusercontent.com/assets/1269969/2865099/a4c80ec8-d218-11e3-870d-a3db4dab3ac6.png)