Fixed Static Linking Issue

It looks like the issue was that the static library I was creating was
mal-formed. I added in a class and then it worked. I used the `nm` tool
to look at the archive after I made it and with just the functions it
looked weird, everything was mapped to 00000000. Which... wasn't right.
I suppose functions in libraries are supposed to be inline-ed? I'm not
sure but it seems to work when the impl resides in the header. But when
I split up the function declaration and impl in the library is doesn't
link correctly in the test apps. Oh well...

I also added more make variables for archive tool, archive flags, and
C++ specific stuff. Updated all make files to use these now.