Multiple changes in compile-time metaprog. utils

- Updated the implementation of evaluate<>.
- Updated the c_str metafunction.
- Added the eval_if metafunction.
- Added a test case for eval_if.