Remove unnecessary *-impl.h files.
Originally, I put all class declarations in headers, but for private
implementation classes used only from one source file, it just leads to
additional maintenance without much benefit. Moved such class
declarations to the source files (quite a few private implementation
classes are already declared in the source files).
Removed some unnecessary destructors, and had to adjust some includes,
otherwise this change just copy-pastes code around.
Change-Id: Icfb30f88f593806971746d14e3fc0d9b5e7caa96