Added operations for interacting with the shell

In order to process files, I tried adding an "sh" operation to escape to shell and process the stdout into a list (since "bash" throws away the result). This lets me do things like getting all files in the current directory with:
  (sh "ls")
I can also count how many lines in the file "gherkin" contain the string "bash":
  (count (sh "grep bash gherkin"))

Also, to make it easier to load up a file like core.gk I've added a "use" function. If necessary, it will append a .gk automatically.

While in core, I added a some list functions from Clojure, to make it easier to look at these lists being made.