Implement the ability to use PATH to execute commands.

- Integrated our use of linked lists to hold path information with
  the need to use the PATH environment variable.
- Make calls with execvp, so that the kernel does the file searching
  for us through PATH.
- Added the num_chars attribute to lists, to make it easier to
  create the PATH string from the linked list.