Fix bug in analysis cache parser.

When there is a placeholder scala_library target with no sources,
the analysis cache file isn't generated by the cache split operation.
The cache file reader doesn't examine the targets at all, so it doesn't
know that there's a good reason why the cache file wasn't generated.

This change skips a cache with a warning when the cache file isn't found.
The only cases I've seen of this are empty placeholder targets, but
it's better to generate a warning rather than skipping silently.
Allow string dependencies, don't require pants('')

Summary:
There's really no point to wrapping every dependency in every
BUILD file with the call to pants() to make a Pants target. Add a
utility function "resolve" with converts:

        - string literal to a Pants() target
        - single Pants target is left alone
        - list of strings or Pants targets to a list of Pants targets

Reviewers: benjy

Differential Revision: http://phabricator.prod.foursquare.com/D1878

Auditors: benjy
add apache header
Add unittest for targets.util.resolve
Make resolve() pass-through existing Targets

Previously it only accepted single Pants() targets. This lets
us more robustly handle targets that may have been specified
as string literals.
resolve() no-ops on all non-iterable objects

per the comment on resolve(), some Targets depend on non-Target
objects, e.g. JarDependencies. To keep resolve() as robust as
possible, it will only wrap string literals in Pants() targets,
recurse on iterable arguments' elements, and no-op on everything
else.
unicode string support for string target deps
Use Compatibility.string instead of basestring
clean up resolve logic using collections.Iterable
clean up some comments, per review feedback
couple more feedback nits
Merge pull request #108 from ryan-williams/strdeps

Allow string dependencies, don't require pants('')
Merge branch 'master' into new_reporting