Fix small error.
Small change to buffer.
Added a necessary change for clang to compile the code.
Done more work in the program class.

This time I worked on the code for checking if the uniform blocks of the
program are compatible with the buffers bound to the block bindings.
Added some better encapsulation to uniform_block_binding. Refactored some code.
Added code for binding a uniform_buffer to a binding. Also did some refactoring.
Fixed a bug.
A small refactoring.
Implemented the ubb_manager() member function.
Fixed a small bug.
Added equivalence operators to uniform. Allowed access to bound_buffer_data.
Changed a map for a vector in the implementation of uniform_buffer
Replaced a map with a boost::multi_index.
Finally implemented the function for checking uniform buffer compatibility.

It makes sure that buffers that bound to block bindings used by the
program are compatible with the blocks bound to those bindings.