Allow FetchingIterator to accept stop-value

Value to test against for the end of iteration can now be specified. Pre-
viewously the stop-value was hard-encoded to NULL.

Caution: If the stop-value does not appear, iteration will go on endlessly.
Allow empty TraversableDecorator

The traversable ctor is now optional and defaults to an empty iteration.

This is useful for the common "init on rewind" iterations.
Added SubIteratorIterator

The SubIteratorIterator allows to iterate over all sub-iterators of a
RecursiveIteratorIterator in both directions and also over keys of those
sub-iterators only.
Added FilesystemStubIterator
Added DualDirectoryIterator and DualRecursiveDirectoryIterator
Incorporated feedback from @ThomasWeinert

More generic iteration assertion accepting traversables now.

- https://eval.in/private/7b99fc33122c12
Updated IteratorTestCase

Allow to give $message for common assertions like it is common in PHPUnit assertions.

Conflicts:
	test/IteratorTestCase.php
Added ChunkIterator and IteratorChunk
Fixed Updated IteratorTestCase

Wrong docblock typehint.
Updated Dual(Recursive)DirectoryIterator

Additions:

- Composite decorating with a SplFileInfo derived class for
  component::current() and leafs
- Added DualDirectoryIteratorTest

Fixes:

- Check on uninitialized (un-rewound) state
- Error in creation of inner-iterators
- Switched to binary case sensitive comparison
- Get/Set flags discrepancy
- Always prefer the first on equality
- Docblocks
Documented PHP Traversables

Classes in PHP extending from Traversable in PHP. Covering many PHP
extensions.
Diverse smaller changes

- Updated ForeachIterator
- Added some more tests and removed fluff from docblocks.
- Additionally fixed two little typos and added plates.
- Added missing @covers notations for tests FullCachingIterator;
  TraversableDecorator; CountableForeachIterator; IndexIteration.
Added composer support

Also expaneded file-comments / added plates and added COPYING file.
Updated DebugIterator events

Added more events and also show values to better differentiate while
debugging.

- Added parent::valid() value as event
- Added parent::current() and parent::key() value as event
- Added afer parent::rewind() and after parent::next() as event
- Updated by adding "()" to event messages for previous iterator methods
- Make varLabel() method final
Updated SeekableDebugIterator events

Updated SeekableDebugIterator events as well as
MagicDebugIterator events.

SeekableDebugIterator current() and key() are mapped
to the inner-iterator object instead of the parent
because IteratorIterator is caching and then proxying
resulted in unexpected behavior.

- Added "()" to event message foi seek method on SeekableDebugIterator
- Added $innerIterator::current() and $innerIterator::value() as event
- Switched to varLabel() method
Make DebugIterator and IteratorDecorator

Change was done because it was noticed that
IteratorIterator::rewind() calls inner iterators
current() method and then not any longer on current().

Ergo: InnerIterator caches/pre-exectes calls to valid(),
current() and key().

- Introduce DebugIteratorModes Interface
- Copy a lot of code, inheritance differs
- Fix: Require autoload.php relative to __DIR__ not CWD
- Code-Style: debug-iterator.php
- Code-Style: DebugIteratorIterator
Added FunctionIterator
Added NumericKeyIterator
Added Examples of PHP Object Iteration

- php-object-iteration.php: Standard PHP
  object iteration example with foreach
- php-object-iteration-internal.php:
  Standard PHP object iteration example
  with foreach on an internal object.
- See: http://php.net/oop5.iterations
Added Example rewind-norewind-iterator.php