Remove C API for analysis neighborhoor search.

Makes it easier to refactor the C++ API, when no consideration needs to
be put into maintaining the C interface.  If really necessary, this can
be reimplemented on top of the C++ API later.

Nearly the whole nbsearch.cpp file changes, but most of this is
mechanical replacement.  Kept the order in the code as same as possible
to make it easier to see that the logic is not changing.

The high-level changes are:
 - Move members of gmx_ana_nbsearch_t to the appropriate implementation
   classes and suffix them with an underscore.
 - Move static helper functions into members of the appropriate
   implementation classes.  This and the above are responsible for
   majority of the changes, as 'd->member' becomes 'member_' on most
   lines.
 - Move the declarations of the C++ implementation classes to the
   beginning of the file.
 - Move all Doxygen documentation to the classes.
 - Restructure the C++ classes a bit to remove some workarounds that
   were necessary to use the C API underneath.  Most notably, the forced
   search mode is now passed directly to the initialization function,
   removing some extra boolean flags, and the const methods in
   AnalysisNeighborhoodPairSearch are now really const.
Also some minor refactoring included here:
 - Remove use of cbrt(), and thus dependency on config.h.
 - Some conversion to C++ patterns: use of static_cast and moving
   variable declarations close to the first use.
Will continue the clean-up in subsequent commits to make it easier to
review that this part really does not change the old functionality.

Part of #866.

Change-Id: I40be305704e17d58f8cb906ad5fa69ea179ece15