ignore dirty submodules
use typedef array_buffer for functions rather than the fully templated
buffer object
provided typedefs for the different shader types
simplified the hash and key_equal functions - no need to create a
temporary object of id_hash and id_equal.
fixed the id_hash function - it wasn't correctly calling std::hash
operator()
use enable_for_contiguous_with_standard_layout_data on the constructor.
reformated with clang-format
Removed the joint enable if contiguous and standard layout typedef - it
was too much. Instead just use the two separate typdefs for enabling.
Updated to reflect changes in is_contiguous
got a textured triangle on the screen hurray!
added image function that's dependent on the texture type
add soil
a texture for the example