Cleanup types

This PR gets rid of the libc types in the filesystem interface (i.e. no more mode_t, dev_t, size_t and off_t) and uses Rust-types instead. I also removed all owned boxes from structs in the filesystem interface. From what I have read, they aren't useful and just add an unnecessary indirection.

Rust now has some types to encapsulate file types (std::io::FileType) and permissions (std::io::FilePermission). That's nice and I changed the fill method of DirBuffer to take a FileType which is much more intuitive than integer constants like S_IFREG. I'd like to use FileType and FilePermission for the rest of the interface too, but that doesn't work as long as we pass around fuse_* types in the interface.

This (slightly) changes almost every function signature in the filesystem trait, so I created this PR instead of pushing it to master. What do you think?

/cc @MicahChalmer