browser: hard-wire node-sass 1.0.3

Stick to node-sass@1.0.3 to avoid RedHat problem:

"Error: /lib64/libstdc++.so.6: version GLIBCXX_3.4.18' not found"

Watch https://github.com/sass/node-sass/issues/517 for news on long-term
solution.
browser: save reference to istanbul by `port` rather than `"istanbul"`

By using `port` to hold a reference to running istanbul servers, we can
control them independently.
browser: display correct port for app in `gulp run`

Render correct option for port of web application in `gulp run` menu.
browser: `gulp run` (re)starts servers after tests

`gulp run` startts web app, unit testing and coverage servers after
unit tests are complete.
browser: pre-install lodash so that it is available on time

npm bug seems to be causing install/postinstall scripts to run before
all dependencies are available. In particular, lodash is not available
for sauce-connect-launcher's script.

Use a preinstall script to instigate npm install of lodash to ensure
it is ready before install/post-install time.

Track these issue for long term solution:

* https://github.com/bermi/sauce-connect-launcher/issues/42
* https://github.com/npm/npm/issues/6624
browser: load highcharts up front

Load highcharts.js as an initial dependency to work around Linux issue
with availability when loading explore state.
browser: remove unused file
browser: normalized paths and backslash-compatible regexes

Normalize all paths for host OS.

For regexes involving paths, match against forward or backward
slashes.
browser: remove console.log statement
e2e: move Sauce credentials out of source code (part 1)

Move SauceLabs credentials to credentials.js, and establish means
to read from that file or environment variables.

TODO: .gitignore credentials.js in a part 2.
e2e: move Sauce credentials out of source code (part 2)

.gitignore credentials.js so that modifications to the file are not
pushed/pulled into version control.
e2e: move Sauce credentials out of source code (part 3)

Fix path to credentials.js in .gitignore.
e2e: (re)allow reporter overrides
browser: allow for ML requirement that JSON keys be ordered

MarkLogic server REST validation presently requires that JSON keys
for search constraints be in a specific order, which is the reverse of
the order the browser was sending.

Reverse the order so as not to trigger validation errors from the
server.
e2e: local selenium starter fixes

* determine the correct path to selenium jar by search rather than
by protractor's configuration;
* do not attempt to parse an already parsed url;
* fix arity of seleniumLocal starter function so that it expects
(the console) args as the first argument and the callback as the
second argument.
e2e: cleanstart: flag stacktrace to enable dbTeardown failure analysis
e2e: defaults for `gulp e2e`

`gulp e2e` with no additional parameters defaults to:

* middle-tier=external
* browser=chrome
* selenium=local
* sauce=false
* to-file=false
* reporter=pretty

In other words, by default e2e tests are run against Chrome with local
selenium and assume that a middle tier is already running.

The report is written to the console only, and is in verbose
cucumber style ("pretty").
e2e: initial explore-by-tags .feature file

Create a few stub e2e scenarios for the explore-docs-by-tags feature.
browser: updates to account dropdown, contributor modal dialog

make display consistent with wireframes (votes cast, etc.)
fix associated tests
browser: updates to voting, vote acceptance

move vote-related logic from controller to model (ssAnswer, ssQnaDoc)
update button styles to be consistent with wireframes
make voting update the user's votes cast