added os.getenv and os.setenv; cleaned up and patched redirect parsing; added variable expansion and groundwork for further stuff to shell (contributed by @Wobbo)
moved path info to os env stuff; fixed a *really* stupid bug in path resolving in the shell
moved some more stuff to os env; better handling of os.exit in shell.execute (and lua interpreter)
synchronized functions in zip filesystem and moved try-catch in factory method, hopefully prevents issues in mcpc+; allowing any type of value as os env var for more flexibility where needed
keeping quote chars and escape chars in text.tokenize for context in expandvars in shell
limiting length of pretty text.serialize by lines instead of chars, closes #120
fixed path resolving in shell (not always looking in current dir first)
added '.' to the end of the path so people don't have to call programs via ./script; returning env table from os.getenv if no name is given; trying to get nicer names for blocks attached to the adapter
added program `components` to list all attached components and their addresses (because i got tired of typing for _,n in component.list() do print(n) end)
updated to UE 3.1 api, closes #122
Merge branch 'master' of https://github.com/MightyPirates/OpenComputers into MC1.7

Conflicts:
	src/main/scala/li/cil/oc/server/driver/CompoundBlockDriver.scala