Add header files to project.
Unfriend stream operator.

Everything data member is public anyway.
Minimize the number of data members in `CommandQueue` class.
Add `enqueue` method to `CommandQueue`.
More detailed description when throwing exception.
Add implementation to methods in `Kernel` class.
Fix initialization of cl_program value.
Eliminate `_source` data member.
Finish implementation of `Program` class.