Fixes bug in whose reputations are affected by voting
Final test adjustments
Test update
Fixes loading of contributors, PR #356
Fix for hasVoting assertion
browser: contributor local test undefined OR null originalId

Some data is using originalId as `null` to represent local contributors,
while others are using originalId as `undefined`. Account for both
possibilities when determining whether a contributor is local or
StackOverflow.

Closes #358
browser: sort comments in chronological creationDate order

Sort all comments by creationDate, oldest first. (Answer sorting was
already implemented.)

Closes #350, #299
browser: on logout, go "home"

When a user session ends, navigate to "/".

Closes #275
fix(e2e): don't assume accountInfoLabel is present
fix(e2e) correct spelling of "loginIfNecessary"
fix(e2e): handle "name" property of Page object constructor correctly

Page object constructors were using the "name" property to indicate the
"code-ish" name for them when they were added to World.

The "name" property of a constructor is off limits and so instead we
had the constructor's actual name being used.

Use "pageName" property to define pages' names in order to avoid this
conflict.
starter files for ask tests
"ask" tweaks
fix(e2e): rename scenario

Rename a scenario that no longer described what it was testing.
e2e: getElementIfPresent function

Issues with protractor isPresent/isPresent element make it safer to
do this ourselves. Make a function that returns a promise of
an element or null, depending on if the locator points to a present
element.
e2e: work around cucumber next callback -> notifyOk

Cucumber's next function isn't promisified and thus considers a
truthy parameter to be an indicator of failure.

This is not an issue when we are dealing with chai-as-promised
expectations because they have .and.notify support.

Create a sugar function to be used when we don't have an expectation so
that any value which happens to be resolved in by a steps function
does not trick Cucumber into thinking something went wrong.
e2e: make use of notifyOk
e2e: remove "returnNull"

Now that notifyOk is implemented, step authors need no longer worry
about truthy return values, so this function isn't needed.
make use of notifyOk by ceasing to worry about returning promises
from functions
fix(e2e): locator/property fixes

* cooerce userName to boolean in isLoggedIn
* don't try to click missing element in accountDropdownOpen
* don't try to access logoutButton before opening accountDropdown
* use getElementIfPresent in accountInfoElement property