Break up macros.h

Summary: Moved parts of macros.h to object-data.h, resource-data.h,
type-string.h, and a new classname-is.h that just has the guts
of the CLASSNAME_IS macro, which is still shared between concrete
objects and resources.

Reviewed By: @alexmalyshev

Differential Revision: D1706380

Signature: t1:1706380:1417030686:28ddcb5a815e5fbb79295ed8fb02e37508d3c8e9