pickler: allow __reduce__ to redirect to another object
pickler: add string-based reduce redirection for __reduce_ex__
core: add full __reduce__ and __reduce_ex__ functionality

Add full support for __reduce__, __reduce_ex__, and pickling of
iterators.
core: add support for classic instances

Support classic ("old-style") classes with arguments to __init__
and add support for __getinitargs__.

This enables full Pickle Protocol 2 support.

Closes #78
pickler: eliminate MAX_ITER

Default max_iter to None so that the default behavior is to
consume an unlimited number of items from iterators.

Add `max_iter=None` to the public encode() function so that
users can specify an explicit value if needed.

Signed-off-by: David Aguilar <davvid@gmail.com>
Merge pull request #82 from marcintustin/master

Add full support for Pickle Protocol v2.

Closes #78
Closes #82

Thanks-to: Marcin Tustin <marcin.tustin@gmail.com>
Signed-off-by: David Aguilar <davvid@gmail.com>