Preparing for game hack-a-thon to meet game goals for sprint 1.
In interest of rapid development commit messages on `hack` branch will be brief. Minor changes and setup.
Removed icomponent, going to play with not having it.
That's not going to work, adding base_component instead.

- Forgoing virtual methods (start/update/end) in favor of having component
  be purely data (with methods available to transform that data). Leaving all
  logic to systems.
Adding windows version of cppclassgen (cppclassgen.exe).
Merge branch 'master' into hack
Was trying to avoid it for speed, but making separate files is becoming necessary.

- I want component_base to know what entity owns it, as well as for entity to have
  a container of component_base pointers. Cannot do this is the same file.
Not hacky enough, need to focus on getting end product working, then going back and cleaning it up.
Actual hacking begins here.  Also taking the opportunity to play with some new C++ features.
Compiles, playing with lvalue vs rvalue.
shader_program::get_uniform_location, game loading, playing with std::unique_ptr
Resources.
Corrected const-ness of graphics_component_hack and vertex_array functions. Added mat3_t. Placeholder transform.
3 objects drawing.
resource update.
Quick and dirty input.
Added timer.
Hacking input.
Crude frame controller. Player can move.
Added a bunch of vec2_t functions. Basic enemy seeking works.