Fix navigation and grading acceptance tests

Currently, master has three acceptance tests that fail nondeterministically.  This PR fixes two of them: navigation.feature (in the LMS) and grading.feature (in Studio).

* The grading test was clicking the "section," then immediately clicking the subsection without waiting for the menu opening animation to complete.  I added an explicit wait to ensure that the subsection is clickable.

* The grading test was using world.wait(0.5) to ensure that the "Save" notification was clickable.  Selenium always reports the save button as clickable because it is hidden and shown using CSS transformations.  I replaced the Selenium click with a JavaScript-triggered event; I also added explicit waits for the "Save success" message.  This is slightly less valid (since we're not actually clicking the button) but much more reliable, so I think the tradeoff makes sense.

I also fixed various style violations and simplified navigation.py.

I'd like to get this merged soon so we can get better stability in the cluster.

Reviewer: @singingwolfboy