diff operations directly over lists, and support for diff and patch application

Hi,

Thanks for releasing this package, I'm finding it very useful.  The three commits in this pull request (1) expose functions for applying diffs to sequences instead of only against files, (2) add functions for applying diffs to sequences to yield modified sequences (I didn't add support for :insert or :replace chunk kinds because I didn't see them in my test diffs), and (3) for applying full patches.

With these changes this library nicely complements a simple delta-debugging tool I've put together (see https://github.com/eschulte/delta-debug), and should be useful in other projects I'm working on at the moment.  I'll be very pleased if you apply these changes.  If there is anything I can do to make these commits more palatable (e.g., splitting up the commits into seperate pull requests, functional or aesthetic changes, etc..) just let me know.

Cheers, Eric