This patch improves our type checking of constexpr declarations: variables must have literal type, functions must have parameter and return types of literal or reference type, constructors must have an empty body and have mem-initializers for any bases or members.