Generate Xcode workspaces/schemes

Summary:
This wires together `ProjectGenerator`, `WorkspaceGenerator`, and `SchemeGenerator`
to generate all the pieces necessary to generate all the Xcode configuration
needed to build an iOS app.

Test Plan:
  buck project --workspace-and-projects Apps/AnApp:workspace
I generated an xcworkspace/xcscheme/many projects, built, and ran an iOS app.
Slightly nicer organization for xcworkspaces.

Summary:
Separates projects into the actual project you tried to build vs
all its dependencies.

Test Plan:
Generated everything for an `ios_binary` target. Its Xcode project was
in the workspace root while everything else was under Dependencies.
Use targets to get to xcode_project_configs.

Summary:
I'm changing the strategy for generating separate projects here.
We can't just gather up all the transitive dependencies of our workspace's target
and bundle them into projects by directories like I was before because this
stomps other targets. Instead, we need to map each target to its package's
`xcode_project_config` and generate that project instead.

Test Plan:
Generated a workspace for an `ios_binary`. Nothing changed in all the xcodeproj's in the tree.
Update PrebuiltJar to take SourcePaths instead of Paths.

Summary:
This diff was relatively painless to implement.
Maybe a little too painless...

Test Plan: Sandcastle builds.
Fix up project name for iOS.

Summary: I was using the path to arrive at the Xcode project name instead
of ... asking the `xcode_project_config`. It worked most places but not for a
project where the `BUCK` file in in `Foo/src/`.

Test Plan: Generated an app workspace, built it, ran it.
Create JavacErrorParser.

Summary:
This class parses symbols from javac errors, so that the autodeps
feature can track them down.

Test Plan: Unit tests.
Call JavacErrorParser from JavacInMemoryStep.

Summary:
4b46be63742ada5c2e0ac5c504e70361c2c103e1 created a listener in
`BuildCommand` to collect missing symbols during the build.
Now that `JavacErrorParser` is available, parse compiler errors
and post these symbols to the EventBus.

Test Plan:
For now just setting a breakpoint to confirm that symbols are making
it. This will be tested as part of the integration tests of the autodeps
feature.
Delete unused code.

Summary: No logical changes.

Test Plan: `buck test --all`
Add annotation types to the JavaFileParser.

Summary:
Previously we weren't collecting annotation types (the things that start with
"@interface"). These types lead to symbol-missing compiler errors just like
anything else, so we should include them.

Test Plan: New unit test.
Be reslient to an error being thrown on buckd's first start, which used to corrupt buckd.port.

Test Plan:
echo garbage > .buckd/buckd.port
buck build buck, verify it still works
Add more options to gwt_binary().

Summary:
This is in response to Shawn Pearce's feedback on
https://github.com/facebook/buck/issues/109.
Hopefully this addresses all of the issues.

Test Plan: Retrofit an existing GWT application with `BUCK` build files and build it using Buck.