Declared and stubbed in the append and update functions from the text following Figure 2.4.
Tested and implemented append.
Some notes to self before heading to the Sounders game.
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.
Refactored the implementation of PFDSList to use some object-oriented polymorphism internally.

- Introduced a private class to represent the empty list.
- Overrode all the PFDSStack protocol methods to do the right thing for empty lists.
- Removed all the explicit checks for [self isEmpty] or [self.firstCell == nil] from the non-empty PFDSList implementation.