Corrected map calculation

Previous calculation of rounded-up mapsize for the framebuffer was
incorrect. Now using the (num + factor -1 - (num - 1) % factor)
method.

Also, explicitly instructing the kernel to align the page to 2^12
offsets. It's hardcoded for a 4096 pagesize for now because using
MAP_ALIGNED is a compile-time macro.
Set the video mode based off the desired resolution

Sets the tty video mode to the requested resolution via TIOCSWINSZ.
TIOCSWINSZ takes the width and height in characters, not pixels.
This should technically be dynamically calculated, but under our
controlled circumstances, a character is 4 pixels high and 8 pixels
wide, so we hardcoded the numbers.
Calculating bytes-per-pixel in a smarter fashion

Not assuming the depth is going to be a multiple of 8, so we round
up to the nearest byte.
Extra logging of resolution details
Using linebytes = pixels per byte * width

Instead of total bytes / height. They should technically both be
the same value, but for some reason, they're not. Not sure how
this value is used later for indexing/addressing the framebuffer,
excess bytes in framebuffer go at end of line or at end of buffer?

If at end of buffer, this calculation method is correct. If at end
of line, then it's not. Usually, the two are one and the same, but
definitely not always.