Fix stale element references in projects page test

The findProject() function was triggering a StaleElementReference error
when it found a project that wasn't first on the list, and then that
project's link was used to navigate away from the page. The reason was
that result.fulfill() was being called inside the projectsList.map()
call, rather than in a .then() function after the map() was complete.
And when the result promise was fulfilled, the code that was waiting on
it ("find the URL from that row and navigate to it") executed
immediately, while there were still rows left for the .map() to go over.
So after the .map() got to resume again, its elements were stale and no
longer on the current page.

The solution is to chain .map() with .then(), and only in the .then()
should we fulfill the promise object we're returning. That way by the
time the code that uses that promise object executes, we're safely out
of the .map() and will not have any element references waiting to get
mapped (which would then be stale by the time the .map() got control).