Implementation of LZWDecode filter
Removed duplicate `Destination` class

I was experimenting with `PdfFileMerger` and when I tried to
write the data to a file the following exception was raised:

    Traceback (most recent call last):
      File "pypdf2/PyPDF2/merger.py", line 194, in write
        self._write_bookmarks()
      File "pypdf2/PyPDF2/merger.py", line 280, in _write_bookmarks
        self._write_bookmarks(b, last_added)
      File "pypdf2/PyPDF2/merger.py", line 292, in _write_bookmarks
        last_added = self.output.addBookmarkDestination(b, parent)
      File "pypdf2/PyPDF2/pdf.py", line 442, in addBookmarkDestination
        parent.addChild(destRef, self)
    AttributeError: 'Destination' object has no attribute 'addChild'

After debugging this for a while I noticed that there are two
different `Destination` classes in PyPDF2 defined in the following
modules: `PyPDF2.generic` and `PyPDF2.pdf`. The difference between
them is that the one defined in `generic` module inherits from
`TreeObject` and has a few extra methods (`getDestArray` and
`writeToStream`)  whereas the one defined in `pdf` modules inherits
from `DictionaryObject`.

The `addBookmarkDestination` method expects that `parent` has
`addChild` method, which in turn is defined in `TreeObject` class.
Thus, in order to fix this issue, I removed `Destination` class
defined in `PyPDF2.pdf` module.
respect destination syntax of table 8.2 in PDF 1.6 specs
respect destination syntax of table 8.2 in PDF 1.6 specs (good one)
respect destination syntax of table 8.2 in PDF 1.6 specs + sublist bookmarks
cleaner and more integrated fix
respect destination syntax of table 8.2 in PDF 1.6 specs + support multi-level bookmarks
Merge branch 'bookmark-dest' of https://github.com/jamma313/PyPDF2 into bookmark-dest
Adding possibility to include metadata (Title, Author, Keywords, Subject, Creator, Producer) to merged PDF
Merge branch 'master' of https://github.com/jpvanhal/PyPDF2 into jpvanhal-master
Merge branch 'master' of https://github.com/horejsek/PyPDF2 into horejsek-master
be sure to avoid null object value
Expanded and Corrected README file
Version 1.7 updates
modified README
Two major bug fixes and a new features:

Bug Fix 1: The problem was with the indirect object cache. When we're looking for an indirect object whose target is a compressed object stream, we look at all of the objects in that stream, decode each one, and then add the object to the indirect object cache.  We decode and cache each object, even though we're only looking for one of the objects in the stream.  (It's possible this was originally an optimization). The problem is that, due to different cross references for different objects, the objects in one of the streams may not necessarily be the newest versions of the object. If we add it to the cache, we may be adding a bad object to the cache.

Bug Fix 2: The key bug that was fixed was in the loop near the "PDF 1.5+ Cross-Reference Stream" comment tag in read(). In the old code, values could be added to self.xref_objStm even though they already exist in self.xref[generation]. That should not happen because they will override the more up-to-date xref values. Instead of fixing this with a few lines of code, I cleaned up that section (which parses the xref dictionaries) and added comments.

Both of the bugs above would occur when using tools on PDFs to add and delete pages. PDF encoders often have optimizations that produce funny xref tables and if they aren't properly handled, you get incorrect results.

New Feature: I added the function mergeRotateAroundPointPage, which adds one page to another while rotating that page around a point.
Changed links for PyPI
Merge branch 'master' of https://github.com/speedplane/PyPDF2 into speedplane-master
Modified exception syntax to run under python 2.5
Corrected documentation for new method - there is no scaling parameter used