Create test suite

I've missed a few `fs_` functions, but coverage is significantly higher
and the tests are actually split up in a modular fashion. :)

Output looks something like this:

```
$ make test
cc test.c -c -o test.o -std=c99 -Wall -Wextra
cc fs.c -c -o fs.o -std=c99 -Wall -Wextra
cc test.o fs.o -o test -std=c99 -Wall -Wextra

  ✓ fs_open
  ✓ fs_close
  ✓ fs_mkdir
  ✓ fs_exists
  ✓ fs_stat
  ✓ fs_fstat
  ✓ fs_lstat
  ✓ fs_truncate
  ✓ fs_read
  ✓ fs_nread
  ✓ fs_fread
  ✓ fs_rename
  ✓ fs_rmdir
  ✓ fs_write
  ✓ fs_nwrite
  ✓ fs_fwrite
  ✓ fs_fnwrite

  17 tests passed in 0.00353s
```

Also, unrelated: building a shared lib now too. :)