Adding local vs remote guard for files

This adds `File#local()` and `File#remote()` as guards/hooks for plugins primarily. After toying around with this for a while, it seemed like this was the least intrusive way to add the feature. (a little hacky, but it works)

(this will fix #402)
I was hoping you could answer that for me, it sure seems like it based on what I was looking at. But I'm open to alternatives, it's tricky since you only get that string to work with.