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)
this would probably fix it:

```diff
diff --git a/lib/duo.js b/lib/duo.js
index 2a1fd4d..c59c532 100644
--- a/lib/duo.js
+++ b/lib/duo.js
@@ -593,10 +593,11 @@ Duo.prototype.recurse = function (paths, map) {
   var file;
   var root;
   var local;
+  var install = this.installTo();
 
   for (var i = 0, path; path = paths[i++];) {
     if (includes[path]) continue;
-    local = path.slice(0, 11) !== 'components/';
+    local = path.slice(0, install.length) !== install;
     path = this.path(path);
     root = this.findRoot(path);
```

... it's still pretty hacky though