Merge pull request #2 from hdon/master

"Toji" renderer works, still needs work on GL3.0, do indeed need to be sure the proper attributions get placed!
well we have GL apis gen'd around 2.1, and v130 sh

yet on the 2.1 card the supposedly v130 sh works with defaulkts, but on the 3.0 card settng to less than 130 compilefails.

oh well.

moving on.
.gitignore fixes

Catch more vim swap files.
Make /src/plate more specific with leading /
Improved exception handling in main()

GNU's C++ runtime seems to be quite scant on details of uncaught exceptions,
so I hope this small improvement gives us more info in the general case.

Maybe we should rethrow instead of return 1 though. With GNU's C++ runtime on
Linux, this will SIGABRT and with the typical config, core dump, which could
be even more useful than seeing std::exception::what().
ShaderProgram class; shader source on disk

The new ShaderProgram class provides a convenient interface for typical needs
wrt reading and compiling shader source code and creating and linking
programs. It also contains (UNTESTED!) capability to reload shaders from disk,
while retaining the older, working (or at least, successfully compiled and
linked) shaders in the event of encountering an error when loading new shaders
source code.

PLATE::Display class was modified to take advanate of this new class, and all
queries for vertex attribute locations and uniforms were encapsulated in a new
small method, in anticipation of being able to take advantage of the
aforementioned "reload" shader feature.