made a forward declaration for MessageImpl consistent with its definition about class vs struct. not sure C++ requires this consistency, but clang++ reportedly considers it an error. and, actually there's no reason to use the inconsistent declaration. should be trivial enough, skipping review.