Rewrite event system.
Event handler should be completely separated from event source.
So we create a shared event center.
Show playback status in the feed item list.
1. add a property lastFeedItem in DZAudioPlayer to remember the last played feed item.
2. let DZCache to produce the full path of temporary file for download.
3. let DZFileStream use DZCache to get temporary file path.
4. make DZFeedViewController a DZEventHandler which handles PlayerWillStartPlaying event to change playback status shown in the list.
5. change DZPlayViewController's event handling method to use a switch structure instead of if-else.
[TODO]
1. DZFeedItemCell does not work correctly. We cannot retrieve a cell from a given URL.
2. think about managing a one-to-one mapping from feed-item/URL to various objects.
- Changes to be committed:
	modified:   mypodcast/DZAudioPlayer.h
	modified:   mypodcast/DZAudioPlayer.mm
	modified:   mypodcast/DZCache.h
	modified:   mypodcast/DZCache.m
	modified:   mypodcast/DZFileStream.m
	modified:   mypodcast/view controllers/DZFeedViewController.h
	modified:   mypodcast/view controllers/DZFeedViewController.m
	modified:   mypodcast/view controllers/DZPlayViewController.m