Fix touch, add hidden?, link?, link, and sym-link functions

I realize this is a bit of small package but I ended up spotting the `touch` "bug" when I tried

```clojure
user=> (hidden? (touch ".hidden"))
;; IllegalArgumentException No implementation of method: :as-file of protocol:
;; #'clojure.java.io/Coercions found for class: 
;; me.raynes.fs$file  clojure.core/-cache-protocol-fn (core_deftype.clj:527)
```
and discovered it was returning `#<fs$file me.raynes.fs$file@292f93ae>` while testing `hidden?`.

I've added `link` and `sym-link` for creating "hard" and "soft" links as well as a `link?` function which partly closes #48. I say partly because I think the person was also asking if `fs/walk` could have the option to (not) follow links but I think that's a separate issue.