added comparison operators, hash function, and key equality
initial implementation of program_bind_policy that wraps glUseProgram
integrated program bind policy
inline functions defined outside of classes to resolve duplicate symbol linking errors
inline functions defined outside of classes to resolve duplicate symbol linking errors