Support for multiple filesystems

I'm getting this one in before the Bolt2 merge ;-). Primarily this lays the foundation for multiple file upload destinations, although there's a little more work needed on the UI front to deal with the variability in options available for different systems.

I'm pretty sure that for users that continue to use the current method of uploading to `app/files` then there shouldn't be any noticeable difference. 

For users that want to do a little extra setup they will now be able to choose alternative filesystems including FTP/SFTP, Dropbox, Amazon S3, Rackspace and WebDav. There's also a mount manager that allows copying between the filesystems as well, so you could for example upload S3 and make a local copy too.

I'll get to work on the documentation for this next, but I've already tested (S)FTP, Dropbox and S3 and it works fairly nicely.