Revert "Removed test units."

This reverts commit d194f374283e684bd0c78535df220f5b9738ac65.
Moved unit tests to 'src' directory.
Revert "Removed test units."

This reverts commit d194f374283e684bd0c78535df220f5b9738ac65.
Added functions for boost::optional and its unit tests
Moved functions for boost::optional into namespace functional.
Fixed functional::bind for boost::optional to pass correct value to a passed function.
Removed redundant line.
Added test::VectorFixture.
Omitted namespace.
Moved function definitions into unit tests.
Changed modified vectors on unit tests to copied vectors.
Disabled functional::fmap and functional::bind for boost::optional temporarily.
Modified unit tests for functional::bind for boost::optional.
Added unit tests for functional::hasSome and functional::isNone.
Added an unit test for functional::inject_optional passed variadic arguments.
Modified unit tests for functional::inject_optional to pass functions which generates list inside.
Added controls for boost::optional.
Added <type_traits> to the function composition header.
Rewrote file descriptions.
Merge branch 'dev' into dev_only_headers