updates to work with weekly.2011-12-22
Attempt fix on parser function calls

Extracted redefinition of ParseStmtList and ParseDeclList from the igo version (with slight modifications) as a workaround to the fact that both functions were removed from go/parser/interface.go.
Attempt fix on error return type

Changed os.Error to error, and imported "errors" just in case.
Removal of unnecessary import

Remove "errors" from import list. The error type apparently does not need this to be known, and it is only used to create new errors.
Attempt fix on parsing and compiling error

Temporarily using the parsing input from go-eval as a workaround, as
the parser first expects a "package" value to parse (possibly a change
upon reaching go 1.0). Also fixed a problem where if GOBIN and GOARCH
are not set, the compile() function would break. This assumes a 64-bit
architecture if GOARCH is not set. An ideal way to be done later is to
call "go tool" first to check the possible tools, then use the right
one according (in the regex format "[0-9]g" and "[0-9]l").

A recurring problem is that the World.source() method does not work as
intended, where it cannot correctly display the code in question. It is
because of this that compile() will not do anything.
Backup world configurations

Added backup for world configurations in case of the default case
running into errors, so that the world configuration won't keep this
error and will just roll back to before the execution. Of course, the
user can manually put in error-making statements with ":", so not much
functionality is lost.
Add multiple import functionality

Added ability to specify multiple packages for importing at once, to
save typing time.
Added item numbers to source code display

For convenience of picking out each of the items (code, declaration, or
package) of the World struct in the source code, number labels for each
are now shown when using "!". Of course, the source code with these
additions cannot be compiled, so it requires a flag to determine when
it is compiling and when it is being viewed by the user.

This is also for a possible future task of removing specific lines.
Fix indentation issue

For code generally requiring multiple lines such as if statements or
structs, the source display will show them with these multiple lines.
Unfortunately, these are not indented correct, so this fix is an
attempt to change it.
Import strconv

For integer to string operations using Itoa().
Fix declaration processing

Exchanged the order of declarations (i.e. var a = 8) and code, as now
declarations can be run like code, but certain code like method calls
cannot be treated like declarations. As such, it is better to let
ParseStmtList be the fall back to contain the superset (code) of input
rather than for ParseDeclList with the subset (declarations).

A note is that if there really is a need for declarations in code, the
user can use the ":" option to forcefully specify its definition,
although this is not preferred in comparison to initializing with ":="
due to possible instability of code (where the compiler might complain
about it not being in use).
Add special processing

Added special processing for certain commands, listed below:
- "import" as an alias of "+" due to people being more familiar with it
- "auto" to import common packages without instability
- "run" to just run the source code without any new input

At this stage, it might be good to put unstable as a World's attribute.
Added write source mode

Added a way to change the mode to only write to source by default
rather than having to use ":" to add it persistently. This does not
run the code unless a "run" command is inputted or the mode is switched
back to REPL mode.

Also moved unstable to be an attribute of World, given it close ties
to the code state itself and for convenience of exec_special().
Fix multiple command persistent source writing

Fixed an issue where ":" will only accept and write the first command
as parsed in the tree and ignore the rest. This is now made consistent
with the default case.
Fix typo with unstable declaration

Forgot unstable is now part of a struct.
Fix reset command typo

Fix typo when reset, found when resetting after testing.
Extended source code removal

Extended the functionalities of the "-" command to also remove specific parts
of the code, with indices delimited by commas. This allows not just popping off
the list but also removal of code in the middle (i.e. if some function call
in the middle causes some unintentional effects). The original functionality
is preserved.

Also updated the help menu to show new commands and functionalities.
Added print shortcuts to autosetup
Add cmd_args calculation

Added cmd_args calculation so that strings.Trim(line[1:]," ") won't be used
repeatedly.
Update help menu again

Added alias for the help menu and source inspection, and changed menu spacing.