Added vertex_array, vertex_buffer, and texture2D

- Implemented vertex_array
- Started implementing vertex_buffer.
- Corrected shader error message formatting.
Working toward ability to draw textured full screen quad.

- Implementing vertex_buffer
- Implementing placeholder vertex
- Added LE_ENUM_* macros to define ordered zero-based enums with stringified lookup tables.
- Improved OpenGL error checking to handle case of multiple errors at once.
- Changed shaders to use GLSL 150 instead of 330.
Working on method to specify vertex attributes. Compiles.
Getting GL_INVALID_ENUM directly after glewInit. Working on tracking it
down.

- Further work on vertex specification.
- Misc minor changes.
Forgot to actually use warning flags.

- Changed to using add_compile_option in BuildWarnings.cmake
- Corrected all build warnings.
  - Corrected unused variable warning on global strings made in commmon/macros.h using
    gcc's __attribute__((unused)). MSVC doesn't complain about unused globals.
- Still tracking down source(s) of GL errors.
SDL2.0.3 package for windows on SDL website was missing SDL_filesystem.h. Added missing file and include.

- Moved README-SDL.txt
Fixed OpenGL errors, and other misc errors. Compiles and runs without issue* on Windows.

- Forgot make  shader non-copyable before experimenting with putting it in a vector.
- Made vertex_array, vertex_buffer, shader, and shader_program non-copyable. There
  is no reason for shaders to be copyable, and I'm going to prefer an explicit copy
  function over a constructor (since this is something I don't want happening generally).
- Was playing around with the idea of storing GL wrappers in containers directly
  (as objects not pointers). Would have been possible to use move semantics to
  accomplish (I think). Throwing out for now, I think pointers will be more extensible &
  open to change.
- Had all kinds of issues in main.cpp when experimenting exceptions and full C++.
- Moving from more C based C++to full C++ is going to be a bumpy road. Up until now
  I've avoided many potholes but using a very minimal portion of the C++ feature set.
  I'll be keeping an eye on how things go from here and consider falling back away from
  C++ depending on future developments. I do feel it would be good to know a lot more
  about C++, but need to be very careful about applying the right tools to the right jobs.
  Might be playing with fire.

*VS exits fine, but gDEBugger detects a second chance exception on engine::~engine()
  inside SDL_LogCritical().