Add support for freebsd

- this adds basic FreeBSD support.  It uses .d_read instead of .d_strategy so there is no mmap support.  Additionally I use some global state so concurrent readers cause problems.  These will be addressed in a future version.