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

So I put your code in a file called `array.c`...

```console
$ gcc -O0 -c -o array.o array.c
$ nm array.o
0000000000000088 s EH_frame0
00000000000000d0 b _foo
                 U _getchar
0000000000000000 T _main
00000000000000a0 S _main.eh
$ gcc -O2 -c -o array.o array.c
jszakmeister@sidious.local [~/tmp/static-array]
$ nm array.o
0000000000000038 s EH_frame0
                 U _getchar
0000000000000000 T _main
0000000000000050 S _main.eh
```

Notice the lack of `_foo` in the bss segment on the second version.  Just to be doubly sure, here's the disassembly:

```console
$ otool -tV array.o
array.o:
(__TEXT,__text) section
_main:
0000000000000000	pushq	%rbp
0000000000000001	movq	%rsp, %rbp
0000000000000004	callq	_getchar
0000000000000009	callq	_getchar
000000000000000e	xorl	%eax, %eax
0000000000000010	popq	%rbp
0000000000000011	ret
```

By "used", I meant the value of `foo[i]` needs to be referenced, not just assigned to as in your example.