[WIP/RFC] Add unit tests for buffer.c and fileio.c

What if you mark `foo` as `volatile`? Even without that, on ubuntu with gcc 4.8.1 and clang 3.2 here's what I'm seeing:

```
$ clang -std=c99 -O2 -c -o foo.o foo.c && nm foo.o 
0000000000000000 B foo                           
                 U _IO_getc                      
0000000000000000 T main                          
                 U memset                        
                 U printf                        
                 U stdin   
$ gcc -std=c99 -O2 -c -o foo.o foo.c && nm foo.o
0000000000000000 B foo
                 U _IO_getc
0000000000000000 T main
                 U __printf_chk
                 U stdin

```