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
Update Component Documentation Links

Update Component Documentation Links in the Designer to point to the
MIT App Inventor Website instead of within the deployed site (server)
internal documentation hierarchy.

Change-Id: I0f80213b0a492e145126b173f49868642cc5e823
Fix problem with listpicker selectionindex

Change-Id: I144b5aa7925411f378dc06395cc4b4f38e2d4a5f
Add more synchronization to the Blocks Editor to avoid project corruption.

Add more synchronization to Workspace and WorkspaceController in
attempt to prevent project corruption when switching workspaces.  When
reseting the workspace, call setVisible(false) on all renderable
blocks.

Change-Id: Icc408876319943998522f3748b22f967a2cea5a2
Modified sample-gitignore to include some files for IntelliJ

Change-Id: Ic5354349b4ed3bd7567d5a1b335d609b5eebe89a
Upgrade to Android SDK version 4.2.2

Change-Id: I02a9ff651c3fd9ca69f21f22bf20298c750fa481
changed British spelling for colour to American color

Change-Id: I573d1012995c210d3622e8abab80c435957e86cc
fix empty list block (again…) re-add messages for list quarks

re-add the min/max block (it was commented out). Clean up method for setting container title.

Change-Id: I819a813b83971cc23f48224707b39a290e17976a
I fixed the README for the unit test framework and added a new unit test for a test program called PictureCycle.

Change-Id: Id4d379386f61359213327cda14e80102e8241a0b
Merge branch 'master' into newblocks
Update Companion to Display it's Version on the main screen.

Change-Id: Ic639ab9d3799244c0172275722971e20018b91c1