Allow transparent use of Pathnames

Pathnames can now be used:

* In `file` and `directory` tasks
* As prerequisites of tasks
* In FileLists, as `include` and `exclude` patterns, and also with the
  `<<` operator

There is a new method on the Rake module called
`from_pathname` (better name?) that calls either `to_path` or `to_str` on its
argument; if neither of those methods are defined, it just returns the
argument directly.  `to_path` should be sufficient, but `to_path` was only
implemented in Ruby 1.9, so `to_str` is there for 1.8.7 compatiblity.

The `from_pathname` method uses a similar mechanism to that used by
`File.open`, as described by Avdi Grimm in his excellent book,
[Confident Ruby](http://www.confidentruby.com/).
Support the `ext` and `pathmap` extensions on Pathnames.

These extensions are not loaded automatically, because they require 'pathname'
to be loaded, and I don't want to force that upon Rake users.  Ideally, there
would be a way to automatically define Pathname extension methods after
the Pathname class has been defined, but I couldn't find a reasonable way
to do that.

So, in order to use Rake's extension methods on Pathnames, the client code
must require 'rake/ext/pathname' explicitly.