Updated the compile-time metaprogramming utilities

- Added support for lambda expressions.
- Changes in the evaluate meta-functions.
- Added the equal_types meta-function.
- Added/updated test cases.