Add "internal" linkage type

Calling a function with "private" linkage causes a segfault on Mac OS X.
I'm guessing this is because no symbol is generated for relocation but I
haven't investigated too deeply. "internal" is similar but generates a
symbol like C++'s "static"
Make codegen capable of generating functions

This switches GenProgram from taking a list of planner steps to a Map of
nativeSymbol -> PlannedFunction. Each function is generated and then
main() is generated which calls in to the special function
__llambda_exec provided by the planner.

The changes to the planner are very minimal; only a single function is
generated at the moment.