Initial commit, .gitignore.
First commit of a ruby implementation for channel9

Currently runs relatively simple little scripts that don't do very much,
but most of the boilerplate framework is here.
Normalize on symbols as c9 strings.
removing unimplemented cruft.
Implemented while loops.
Implemented if.
Adding simple test harness.
Implemented method definition.

You can now define methods on the global self object (and, once
provided, an actual class definition).
Properly implemented return.
Implemented naive constants and normalized special object key type.

* Constants now work, though it naively assumes there is only the global
scope.
* All special objects are keyed through symbols, not strings, now.
Implemented class definitions.
Moved method definition methods to Module, where they belong.
Implemented Module definition/inclusion.
Made it so that instruction sequences pop unused results between calls.
Obvious primitive types I had forgotten.
Implemented simple block iterators.

Currently only implements them for a single argument, but it works well
enough.
Implemented global variables.

Globals are currently stored in a hash in a special channel, accessed
through a Kernel method (global_set/global_get).
Implemented dynamic strings.
The beginnings of ruby-native kernel code.

Made the environment finish its initialization by setting up a default
$LOAD_PATH and loading "kernel/boot.rb", which will finish
initialization in ruby itself by adding all the necessary methods.
channel_send now takes the caller's environment.

This is for two reasons:
* Primitive types are independent of environment, but will need to
  interact with the environment from which they are called to provide
  additional functionality and interface to the enclosed environment.
* In future, it will be useful to know when a channel has been called
  from another environment in order to, for example, defer the call
  until the called environment is ready for it.