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
Revert "Adds various functions to the Workspace context menu, including collapse/expand"

This reverts commit c56eec8163454ec52817ae9bb48d74e065dd8d17.

Change-Id: I7b879582a90edefb32276fe6f29b12cada88398d
Update to Blockly v958

now includes collapse and expand from Blockly core

Change-Id: I6c43c01fbf77d50933c9f228b80d749f62c3dce0
Add "Switch to Debug Panel" menu choice to the Project Chooser "Admin"
menu. This menu is only shown to administrators and they can use it to
switch to the Debug Panel without an error having occurred.

Change-Id: Ifa913fd9d6530765c6bc8921130873f3ff143f32
Reduce spurious logging.

Reduce spurious logging in AssetManager.java. Put logging under a DEBUG
flag, default "false". Avoid the log messages every two seconds.

Change-Id: I77472f1c83eb1be629fbe005dbb68b184a657a4b
stop attempting to render blocks when not loaded

Change-Id: Id2ffc6801f242973c54d54eafd4bfbf01726ab36
changes name in the title of the browser tab

Change-Id: I74a690c5d3e5e6afdd421f2e0b30339d85b2a86d
Change checks to be strings instead of JavaScript types.

Changing type checking in preparation for Blockly push.

Change-Id: I8c65df58c8fa13340a3425c257c941066d44721c
allow component blocks to output "component" for type checking, in addition to their type name

Change-Id: I7c5420bdc0b1dd6470d5504864b84c8e7a3fd286
Fix problem with listpicker selectionindex

Change-Id: I144b5aa7925411f378dc06395cc4b4f38e2d4a5f
add get block below for blocks and parameters

implementation of this needs to change based on http://trac.appinventor.mit.edu/ticket/410 but will do later due to time constraint

Change-Id: Icbe7ad4220d4ce5e4c3970cd4a7c03bde3e136d7
add default arguments to for block
add default aruguments to random integer from block
It is now consistant with App Inventor (classic)

Change-Id: I8fc4def283d43c5070a27b72644e14efc323fd30
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
add default list for make color block

Change-Id: Icddd2c3aee4f62c07dae7e3b3324eb564608cb7b
fix for ovelapping vertical scroll bar in the blocks editor on chrome for mac

Change-Id: I9844eeaad0079583e1221a4b7d1ca6ac5aedacc2
Fix Form initialization to correctly setup alignments in Screen1.

Change-Id: Ib7bb5ca340fde54096f4a8ba0511e2b92f21edbb
Change colors to use rgb model
Change block catagogy icons to match new colors

Change-Id: I7b88886d3709bb2d817518b4d1bff00a23502d14
switching component drop down changes language name

this makes it possible to delete the component that was originally used to create the block http://trac.appinventor.mit.edu/ticket/397

Change-Id: I1cf56b3122ca3bc9486ba731c1456dd664422042
add show/hide warning button

warnings can now be toggled from a button inside of the designer.
also added calls in connection.js so that warnings can be triggered when a block is being connected.

Change-Id: I8abec995c5de7690b2fa85f848ade4b7752b66a4