A couple of shell improvements
Use linked list to manage nvram variables (note: new variable creation partially works, still very buggy)
Ensure that getenv and printenv notify the user if a variable doesn't exist
Rewrite nvram variable handling code
Clean up cruft
use strdup instead of casting to char*
Implemented u-boot style setenv behavior, variable handling now works
Start fixing bootx
Include mach.o and xmdt.o when linking
Better formatting for nvram_dump_list, move variable handling commands into commands.c
Reformat nvram code
Merge pull request #1 from b-man/master

Implement proper nvram variable handling, fixed funny shell behavior.