ensure all cleanups are executed (in order)

This is useful when a top-level cli app wants to do some cleanup of its own after a subcommand
has been executed
Merge pull request #138 from koreno/cleanup

ensure all cleanups are executed (in order)
fix issue #139
Merge pull request #142 from AntoineD/master

fix issue #139
fix issue #136
Merge pull request #143 from AntoineD/master

fix issue #136
Allow running an application using a function call - MyApp.invoke(...)
Merge pull request #149 from koreno/invoke

Allow running an application using a function call - MyApp.invoke(...)
Add a root_app property to `cli.Application`. Closes #140

This adds a property to `cli.Applicatino callled root_app which returns a
reference to the "root" Application object in a tree of Application objects.

Conflicts:
	plumbum/cli/application.py
Changelog: update for 1.4.2 and the upcoming 1.4.3
copy: mkdir of the destination file's parents. closes #146
Pipeline: fail command when source process fails. closes #145
oops: forgot a print statement there
Path: add encoding option to read/write. closes #148
Path: filter now accepts a second predicate for recursing into directories. closes #147
Preparing for v.1.4.3
fix test for python 3.2 compat
cosmetic fixes