Sam/ftpparse

Pull in the ftpparse code as an alternative parser.

I did it in a branch just in case the licensing turns out to be incompatible, but to be honest I think we're safe to just pull it across into master. The licensing isn't likely to be worse than the FTPDirectoryParser license.