finally got it to render; plus memory cleanup

One of the big things was that I had to set vertex attribute divisors
for the transformation matrix.

During the process, I added a shape generation capacity for a "double
triangle".  This was a simple drawing thing so that I could track from a
simple triangle to a cube.

Also added mouse-to-camera tracking as part of the debugging process.

Also added a bunch of real time updates in the camera's mouse tracking
handlers.

Next step: Rotate the cube my toying with it's "up" vector.
now have a cube that faces mouse

After a lot of frustration and experimentation and trying to grasp some
of the mathematics behind rotation and such (which I still don't get), I
managed to get a cube to track my mouse when I click and drag.

Yay!

Next step: Try to figure out how to introduce the socket communication.
The QT widget's exec() method is blocking.
deleted some test code from main

There were some off-the-cuff tests that I was running from main awhile
back.  I deleted some of the code to avoid clutter.
started integrated QTcpSocket and signals

Aside from the last commit to clean up a little clutter in main, it has
been awhile.

I got to the point where I was ready for serial data, but then realized
that both QApplication::exec() and the serial reading were blocking.  To
get around that, I needed to do some multi-threading stuff.

Thankfully, Qt already handles that, but it took two days to get through
understanding how to integrate it with Visual Studio.  It isn't perfect,
and I still need to run to the meta compiler myself when I do something
new, but I'm alright for now.

Next step: Change the data being spit out of the microcontroller to
three floats (one per X, Y, and Z axis) instead of a string.
Hooray!  It's tracking now!

Granted, the tracking is shaky because it is only updated 10x per second
and because there is fluctuation in the measurements that make values
near 0 fluctuate between positive and negative.