Refactor benchmark_configs

This is a work in progress.

1. Add more attributes to each test, which will be use to drive the
   filter and meta attributes for frameworks on the results website.
2. Add "database os" attribute to each test, so that the benchmarker can
   know which tests should be executed in a given hardware configuration.
   (See servicestack for an example of four different Windows/Linux
   combinations.)
3. Remove "sort" attribute from all tests.  This was used as a unique
   identifier for tests to attach their results to the meta data on the
   results website.  Now that the meta data comes from the tests
   themselves, this is unnecessary.  (Besides, we already had unique IDs
   for each test without a "sort":  the tests' names.)
4. Separate notion of "database server" and "client" for the installer.
   Previously, it would attempt to install all db and client software on
   the same machine.
Refactor benchmark_configs

This is a work in progress.

1. Standardize "None" as the database type for tests that don't involve a
   database.  Also, use "Linux" as the database OS type for those tests.
   That attribute is really "when do you want to run this test, given the
   current database OS?" and so we'll arbitrarily pick Linux.
2. Specify a display_name for every test so that we don't need any logic to
   come up with a default display name.
3. Add an option to run-tests.py that prints the test metadata as JSON.
   This will be used by the results website.
4. Fix some small errors / typos.
Refactor benchmark_configs

This is a work in progress.

1. Fix output for --list-test-metadata.
2. Fix reference: ssh_string -> client_ssh_string.
3. Print stack traces on errors during test runs.
4. Fix argument: --application-os -> --os.
Fix a few minor errors in test metadata.
Fix asp.net+mono setup script to stop the mono server.
Disable some nginx logs.
Disable more nginx logging.
Stop mono correctly in nancy test.