Implements annotations for component assets and native libraries

This change adds two annotations for conditionally loading application assets
and native libraries based on what components an application uses
(@UsesAssets and @UsesNativeLibraries).  The annotations work similarly to
@UsesLibraries.

The implementation of all the "@Uses..." annotations has also been altered
to be more general.  Simple_components_permissions.json and
simple_components_libraries have been combined into a single file,
simple_components_build_info, which also contains asset and native library
requirements.  Some methods have been combined as well to avoid
duplicated code.  These changes take place primarily in Compiler.java,
ComponentListGenerator.java and ComponentProcessor.java.

Assets required by components will be placed in a "component" subfolder of an
application's asset directory, and will not interfere with assets added by
the user. @UsesNativeLibraries contains an additional field for including
files targeted towards ARM-V7A architectures ("v7aLibraries"), but otherwise
functions as @UsesLibraries.

This change has been tested with simple Twitter, Texting and Fusiontables
apps to confirm @UsesLibraries still functions. @UsesAssets and
@UsesNativeLibraries are not used in this change, but have been tested
with a component I will submit as a separate change.

NOTE: All Ant tests pass except for a failure on
testCreateManyYoungAndroidProjects which, on my machine, also occurs on an
unaltered pull of the master branch. See Groups post for more info.

Change-Id: Ib1a3dd38018ec014e41c58ccece75421c7db9869