Update CI goal, protractor use

Fix the grunt CI goal to include the server task (so a server is
available for it to hit during testing).  Include a script to execute
this goal via `npm run ci`, and include the necessary webdriver
downloads during the `install` script phase.

Update to the latest version of protractor to take advantage of the
`beforeLaunch` and `afterLaunch` hooks, which allow for asynchronous
execution through promises (which can be done via the bluebird
dependency).  Also run protractor against both firefox and chrome, but
in CI only use firefox (to align with TravisCI support, if nothing
else).