It is necessary to keep track of whether we are at the end of the path
or not. This way we know whether to create an empty clone of the target
or to just use the direct directly.

It is also necessary to update the 'up' and 'tail' pointers when
descending through lists.

This fixes the issue seen in #8 and also passes all the existing tests.

Fixes #8
*Fix separators not being passed into internal methods.
*Fix search function with yield not returning anything if looking for an item that is along the way/not a final item in the object.
*Modify filtering hardcode in search function so that the paths function never returns paths along the way and only returns paths leading to final values.
*Change filtering 'filter' parameter to 'afilter' as 'filter' is a reserved in-built symbol. Update documentation to match.
Merge pull request #14 from xhh2a/master

Fix #12, #13, #14.
Create stubbed version.py for #17
Update the README for #10 and related to #17