add has_element_type
add has_iterator.hpp
add NEK_HAS_XXX_TYPE macro
add `identity` meta function
add `eval_if` meta function