embind doesn't always need the full std::type_info record.  if EMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0, then use a lighter type identifier.  This shaves 175 KB off of our engine's minified JavaScript.
Add a way to opt out of compiler-generated type names for smart pointers and wrapper types.
Always require an explicit name for shared_ptr and wrapper type bindings
some compile fixes
Merge pull request #2286 from chadaustin/embind-code-size-reduction

Embind code size reduction by using lightweight RTTI record for non-polymorphic types