Move more preprocessing files into the module

This removes the need for the gmx_objlib CMake object library, because
there is no longer random functionality orphaned in src/programs/gmx
(which is there because it was orphaned in src/kernel in release-4-6).

Moved legacyheaders/grompp.h to gmxpreprocess/grompp-impl.h since it
only declared structures that are (now) only used in that module (and
it no longer #includes stdio.h). gmxpreprocess/grompp.h now only
declares gmx_grompp().

Likewise, pdb2gmx, protonate and x2top now have their own
single-function headers.

Removed useless declaration of ncontrol from h_db.h

Removed grompp.h-related useless dependencies, declarations and
definitions from Generalized Born files.

Updated include and added C++ guards for files already within the
module (and new ones). Uncrustified, bumped copyrights

Refs #1415

Change-Id: Ie7967d7d7f61df684d530e3c2d982486a3cd128f