Added basic files.
Changed some method names.
Added some tests.
Removed license from individual files.
Changed boost::function for std::function.
Added some documentation and changed a little of the implementation.
Included documentation in the README.