fbuf: Add char(), to draw an ASCII character

Uses glyph-based positions, i.e. the x and y position to draw are not exact
pixel coordinates. If a glyph is 20 pixels wide, glyph position 1 is pixel
20. This will likely change, to facilitate things like scrolling text.

Currently the glyph processing is in C. This will likely get rewritten in
assembly to get the best performance possible.

font.bin will be the default font which is embedded in the kernel image.
Compile C code with -fno-builtin

Was getting a warning message because our declared memset function wasn't
playing well with the built-in function provided by GCC.