CreateParseTestName -> ParseClassAndMethodFromTestName

I'm about to use this function elsewhere, and want to rework it a bit.
I have no idea why it was named "CreateParseTestName" ... wtf?
move `ParseClassAndMethodFromTestName` into the Common dir

This function is going to be used by otest-query as well, so lets move
it to the common dir.
rework otest-query to be compatible with Kiwi & Specta

We used to do test case introspection by looking at all SenTestCase
subclasses and then looking for all methods of those classes that
started with the prefix 'test'.

That method breaks for the BDD testing frameworks like Kiwi or Specta,
because they don't have ObjC methods for each of their tests.  (They use
some magic machinery in `+[SenTestCase testInvocations]` that lets them
control how tests are run).

Our new method scrapes the list of tests cases we can find in
`+[SenTestSuite defaultTestSuite]` which will include all test cases in
a bundle.

This will work equally well for plain tests and Kiwi/Specta.
adding `containsArray` matcher, and reducing the scope of some tests.

Some of the tests in OCUnitTestRunnerTests tested more than they needed
to.  e.g., they were verifying all the arguments to otest/xctest were as
expected, when all they really cared about was whether a couple of the
arguments were as expected.
tests to check that correct test specifier args are used for (XC|Sen)Test

Make sure .octest bundles use -SenTest* and .xctest bundles use -XCTest*
always pass the inverted test list to -SenTest / -XCTest

Instead of passing the explicit list of tests to be run to -SenTest, we
should instead pass a list of all the tests we do _NOT_ want to run and
set -SenTestInvertScope YES.

This is exactly how Xcode.app does it.  Also, for the Kiwi BDD testing
framework, this is the only way to run specific tests.  For some reason,
Kiwi will only run specific tests if we do the inversion method.
sometimes use -SenTest All, other times use -SenTest Self

Apparently it matters.  When Xcode.app runs all tests in a logic test
bundle, it uses -SenTest Self.  When running all tests in an app test
bundle, it uses -SenTest All.

This fixes the bug where application tests would fail to run.
show friendly error message when scheme references non-existent target

Squashed from:
Fixed the crash when xctool called on target with broken dependencies
fixed bug caused by changing garbageCollectionEnabled type
added test to check if we handle the broken dependencies
refactored the code replacing the buildSettings with testableExeutionInfo in method signature
renamed the test for broken dependency and moved the test data
added fake task handlers to testWillComplainWhenSchemeReferencesNonExistentTest
let each of the end-ocunit attributes be optional.
only check for TEST_HOST if build settings loaded.
when using blockToAdvertiseError:, we should always have annotations
When analyzing, warn when build-state.dat is not in the expected location

Targets overriding the CONFIGURATION_TEMP_DIR build setting will emit
intermediate files in a non-standard location. Since xctool does not
parse the full build settings for sake of performance, it can't know
where the actual intermediates will be emitted to.

Previously, when collecting analyzer output, xctool blindly assumes the
location and existence of the file, and would block forever trying to
read it. Now it gives an insightful log message and ignores the target.
Merge pull request #221 from facebook/yiding/analyzer-warn-and-ignore-missing-intermediate-path

When analyzing, warn when build-state.dat is not in the expected location
when TRAVIS=true, cap divider line length at 60 chars.
Refactored OTestQuery.* to multiple classes. This will help with passing the device architecture down from RunTestAction.
bugfixes