Additional sorts on lists.  Mix of client side and DB side

Because MongoDB doesn't do case-insensitive sorts, most of the list sorts are moved back to the client side.
TODO: sort Texts by createDate
updated gitignore for chromedriver
added windows bat file for starting selenium webdriver standalone
modified protractorConf to include setup and teardown placeholders
WIP: E2E test for changing password

Currently does NOT work, as apparently there is no isDisabled()
function on elements. I'll need to find the correct way to check
for an element being disabled, but it should be straightforward.
Start protractor test for verifying User account page
WIP: E2E test for changing password

There is no isDisabled(); instead, check that isEnabled() is falsy.
Rearrange folder structure in Angular E2E tests

Folder structure under test/app is supposed to mirror folder
structure under src/angular-apps.
Move userprofile test directory
Make password-change test log in before each test

Should probably move this function to a library of test-fixture support
functions, sometime in the near future.
Return to running all tests and not pausing
Add tests to verify password successfully changed

We verify a successful change-password operation by logging out and
logging back in. Since this can have race conditions when run under two
different browsers at once (one has just changed the password to NewPass
while the other is still trying to log in with OldPass, or vice versa)
we also change protractorConf.js to only run under a single browser,
rather than under multiple browsers.
added astrolabe protractor extension to node_modules
Rewrite test without continuation-passing style

https://github.com/angular/protractor/blob/master/docs/control-flow.md
says that Selenium maintains a queue of pending promises, and waits for
each previous promise to be fulfilled before running the next one. This
means, in essence, that it's unnecessary to call then() in test code,
because each step of the test returns a promise, and Selenium keeps
track of the order of those promises and makes sure they're executed in
the correct order. So the whole complex continuation-passing style I
initially wrote this test in is quite unnecessary, and I can write it in
a much simpler style.
Move node_modules out of lib/ directory

The require() logic in Node is a little hard to understand, as a lot of
documentation on the Internet talks about a require.paths variable
that's now been removed. Pity, because it would have been the perfect
solution for the problem we've been hitting with Astrolabe, where doing
require('astrolabe') fails to find the module. Another solution, setting
the environment variable NODE_PATH=./lib before running Protractor, is
also failing for hard-to-understand reasons. One thing does work,
though, and that's having node_modules in the directory from which the
Node session is launched. In our case, that's the "test" folder.

If we figure out how to do this better in the future, we can move
node_modules back into "test/lib". For now, though, this is the simplest
change to make that gets the job done.
Update .gitignore for selenium binaries

After moving the node_modules folder out of test/lib/ into test/, we now
need to update the .gitignore entry for the Selenium binaries to reflect
their new location.
WIP: setupTestEnvironment.spec.js (now working)

Still incomplete, but there are some features that need to be added to
our siteadmin app (like a user search feature) before this can truly do
all the setup required. For now, it just prints some console messages
detailing what manual steps are needed for the setup.
Change username and password for test users

In the earlier team meeting, we'd picked more standardized usernames and
passwords for the various test users; the test code should conform to
those names rather than names made up off-the-cuff.
Separate loginService to separate module

Created utility package loginService.js for E2E tests to login as user, admin, (and project manager).
Credentials currently hardcoded and will need to be separated when pushed to repository.

Updated userProfile/ng-app.spec.js to use this loginService

Also updated windows webdriver.bat file to point to protractor location
REALLY fix test user names and passwords

I changed the usernames and passwords in one location, but not the other
one, and it was the other location that was currently being used in test
code. Now changed in both places.