Prevents reshuffling within browser session.

With the current setup, the project list gets reshuffled if the user
clicks through to a project then comes back. This makes it hard to
browse the list. Now the ordering is stored in `sessionStorage` after
the initial shuffling.

If sessions storage is unavailable, the current behavior of shuffling
every time is used.

This patch assumes that project names are unique.

Testing:

* Clicked through to a project and came back.
* Refreshed the page.
* Fooled browser into thinking sessionStorage was unavailable.