Move hardware detection to hardware/
This may not be the best place for all of the code, since there are
also, e.g., functions that return information about implementation
limitations of mdrun, and for checking mdrun input parameter
consistency. But it would make sense for as much of the actual
detection code as possible to be in a single location, and this would be
the most natural place.
There are several cyclic dependencies suppressed for now to get forward
with breaking up gmxlib/.
Change-Id: Ie73d0a18530082d3a2b9f26a655706b33bf58a8a