pull the code that fetches testable build settings into its own function.

This method is growing far too big...
cleanup: move test configurations stuff into its own method.

^^, this method was getting too large.
AbsolutePathFromRelative() helps you get an absolute path.

I'm going to use this function elsewhere.
GetAvailableSDKsAndAliases() should empty the env before running xcodebuild.

Previoiusly, we never called `setEnvironment:` on the NSTask, and so the
caller's environment would pass through.

Usually that's OK, but when running tests from Xcode,
OBJC_DISABLE_GC=YES will get set and then `xcodebuild` will fail to run
(because it uses GC).

Note that DEVELOPER_DIR can still be used to be override which
`xcodebuild` to use, since `XcodeDeveloperDirPath()` will call out to
`xcodebuild`.
show error if xcodebuild fails in GetAvailableSDKsAndAliases()

If xcodebuild failed to run here, we used to silently fail.  Now we'll
show whatever xcodebuild gave for stderr.

Tested with...

```
DEVELOPER_DIR=/SomeBogusPath /Users/fpotter/Library/Developer/Xcode/DerivedData/xctool-coaqfpnavanndzgumiqgxmfwpkjd/Build/Products/Debug/bin/xctool -workspace xctool/xctool-tests/TestData/TestWorkspace-Library/TestWorkspace-Library.xcworkspace -scheme TestProject-Library -sdk iphonesimulator -configuration Debug ONLY_ACTIVE_ARCH=NO test
```
runTestClassListQuery will now use the OTestQuery* functions.

This is an intermediate step towards moving `testClassNames` out of
`OCUnitTestRunner`.
OCUnitTestRunner is no longer responsible for querying the test class names.

Instead, we use `queryTestClassNamesFromBuildSettings:` from
RunTestsAction, and
`testClasses:filteredWithSenTestList:senTestInvertScope:` to filter the
list to match the SenTest parameters.
extracting the inner loop in `executionsForTestable:...` into its own method.

^^, it'll be called `executionForTestable:...`.
trying to simplify parallelized test runs.

The new scheme does the following...

[in parallel]
  - collect build settings for all testables
  - collect a list of test classes for all test bundles
  - do any arg/env macro expansion

[in serial]
  - chunkify test classes into groups
  - for each group, generate a block that runs otest for that chunk of
    tests

[in parallel]
  - run all blocks generated in the previous step.  logic and
    application tests can be run at the same time, but application tests
    run serially on the main thread.

Tested by running Facebook's tests in serial and parallel.
-parallelizeSuites is now -bucketSize, and otest-query returns all test cases.

Instead of parallelizing N test suites/classes, you now parallelize N
test cases.  Also, setting -bucketSize to 1 has the effect of running
every single test in isolation.

Also, otest is now always invoked with a specific list of test cases
that will be run - we never pass All anymore.
OCUnitTestRunner doesn't need `senTestInvertScope` any more.

Since we started passing the explicit list of tests to run each time,
there's no need to ever invert.
OCUnitTestRunner doesn't need `standardOutput` and `standardError`

Not sure when these stopped getting used, but they're clearly not being
used now...
when calling otest, use the broadest form possible for the `-SenTest` param.

See full comment on `reduceSenTestListToBroadestForm:allTestCases:` in
OCUnitTestRunner.h for a full explanation.
break `-bucketSize` into `-logicTestBucketSize` and `-appTestBucketSize`

So, the odds that you actually want to bucketize and parallelize
application tests are pretty low right now.

There's a lot of overhead in interacting with the simulator, so you want
to minimize the number of times you install/launch apps.  If you
bucketize your app tests, your test runs will take a lot longer.

Later, when we have parallelized simulators, it might make more sense to
bucketize app tests.
call otest-query-ios directly instead of going through the `sim` wrapper.

The `sim` wrapper seems to have weird interactions with the simulator -
it does more than I originally thought.  I've seen it hang indefinitely
if the simulator was in a weird state.
don't let application tests run concurrently with logic tests.