Complete download button and download.
1. use a download list (DZDownloadList) to manage download.
2. do not use explicit download object. (DZDownload is removed)
3. use DZFileStream for download.
4. add DZItem * feedItem property to DZFileStream in order to access DZItem.fileSize.
5. add fileSize property to DZItem (also in coredata model) to remember the file size when download is paused.
6. add delegate to DZFileStream, but not used currently.
7. DZFileStream fire event (same event as its delegate would handle them), the events are used to notify the view controller to update download status.
8. DZDownloadButton do nothing except show the status.
9. DZFeedViewController get notified when download status changed, get URL of DZFileStream (the event source), and thus the DZFeedItemCell (from URL), and thus update the DZDownloadButton (with its own property remembering the corresponding DZItem).