Implemented error checking for nil argument to append.
Added tests and implementation for updateIndex:withElement:.

Added some a note on how to make the code more object-oriented. Might also want to consider relying less on recursion, since we don't have guaranteed tail call elimination. (clang does do tail call elimination as an optimization. I need to dig into that more. Does it work for obj-c message sends where the receiver is changing?)
Implement and tested Exercise 2.1, suffixes.

Added a convenience initializer for creating a PFDSList from an NSArray.