Initial tests for verifying forward declarations

(cherry picked from commit c9b5a07d5cd83100862e067ccff189e10c666f9b)
added some stl forward decls

(cherry picked from commit 365737c218defce09bbceca2119f396236564c99)
added a function and a trait util from stl

(cherry picked from commit 2ea8127e629ee26a48bbaeda8da935dbe04d7ebe)
enum test for C++11 enum class, does not have C enums yet

(cherry picked from commit 9b7d0c5260f79b321b8b21b3c19da3e8c507aa11)
enum test for template

(cherry picked from commit ce717aac63c7bd29e836106e255df98b23c4fdb3)
initial code for new approach

(cherry picked from commit fa2b32bd9281f61fd36ff1987041a9a7607ab5e7)
modified tests

(cherry picked from commit 77316a2838c5037feff8091bb5c0919bc59d6b16)