Load the blocks file after the .scm file is loaded

Change-Id: Ic4effb8a76ba6d5db013a54d68ae16131c346735
Changed connect menuitems names to AI Companion, Emulator and USB
Changed Gallary link to show up only when logged in as admin.

Change-Id: Ibc7210806ffdb6397140fe0a9f5410e1ce67a952
Name restrictions on local, global, and procedure names.

* Changed local, global, and procedure parameters to check that
  all satisfy the following regular grammar:

     <identifier> = <first><rest>*
     <first> = letter U charactersIn("_!$%&?^*~/+-.@>=<")
     <rest> = <first> U digit

  This is a simplified version of Kawa's identifiers. I don't see why we
  care about Java's identifiers, since only Kawa's are being used for
  global/local/procedure namespaces in runtime.scm.

  This grammar cheats a little -- any of the special characters in
  "+-.@" aren't allowed to start an identifier but can be anywhere
  else in the identifier. So the strategy is to add a legal prefix to
  any AI2 name to make it a legal Kawa name.

* Before doing the above check, user identifiers are first transformed
  by removing leading and trailing spaces and replacing nonempty sequences
  of internal spaces by an underscore ('_').

* Illegal identifiers are replaced by an identifiers of the form name<num>,
  where <num> is an integer > 2 or empty. One exception: the empty string
  is replaced by '_'.

* Modified the code generator to check for legality as desribed above.
  The following prefix tags are currently used (but can easily be changed):
  + local variables: $ (e.g. "sum" => "$sum")
  + global variables: g$ (e.g., "count" => "g$count")
  + procedure names: p$ (e.g., "factorial" => "p$factorial")

Change-Id: I3b5de2c3a7569a50c027cf062029d97542452aad
Name legality bug fix and restriction; fix to horizontal -> vertical params in proc decls

Patch Set 2 Notes:
==================
* Fix bug that allowed two procedures to have the same name. Now they are renamed
  with a numeric suffix.

Patch Set 1 Notes:
==================

* Fixed bug in which procedure names were not being checked for legality.

* Made legal variable/procedure identifiers more restrictive:
     <identifier> = <first><rest>*
     <first> = letter U charsIn("_$?~@")
     <rest> = <first> U digit

  Note: an earlier verison also allowed characters in "!&%.^/+-*>=<",
  but we decided to remove these because (1) they may be used for arithmetic,
  logic, and selection infix operators in a future AI text language, and we don't want
  things like a+b, !c, d.e to be ambiguous between variables and other expressions.
  (2) using chars in "><&" causes HTML problems with getters/setters in flydown menu.

* Fixed bug in which changing parameter orientation from horizontal to vertical
  in a procedure declaration didn't render the body slot properly.

Change-Id: I6eb9c5577c3bec1710980b133a4259705f322878
Fix BlocklyEvalTest.

Fix BlocklyEvalTest. Add a new project test (factorial). Note: only
two of twelve projects test successfully, but we believe that is
related to other code.

Change-Id: I908b23ef7d907a3d83826509e4f08cfbe1771017
initial fix of translation bugs, better on locals, fixes undefined prop, some lyn translations

Change-Id: I5d743896109e56a5d2d9254657a6240b5de5bdfe
Fixed my bug in generating code for procedure declarations with zero args.

Change-Id: I3c191e40ebe99fc2f2dae7ee67bb7adbf25d76e1