Merge pull request #81 from mabraham/opencl

Merge most of development on gromacs/master branch
Changed include path for nbnxn_consts.h
Removed local CL folder

1. Removed local CL folder with OpenCL headers
2. Removed GMX_OPENCL_FORCE_LOCAL_HEADERS cmake option
Changed include path for nbnxn_consts.h

Includes from OpenCL source files should include only the header name.
If Gromacs is installed, all OpenCL source files are placed inside the
same folder, so an include such as <<#include "../nbnxn_consts.h">> will
not work.
If Gromacs is built from sources and executed, any additional include
directory is specified at runtim by the -I OpenCL compiler option.
OCL_INSTALL_DIR renamed, modified to store full path

OCL_INSTALL_DIR was renamed to OCL_INSTALL_FULL_PATH.
It now stores the full path to the install folder.
Previously, mdrun was not working if launched from a different folder
than OCL_INSTALL_DIR
Added the OpenCL team to the Contributors list
Removed cmake output about OCL files to be installed
Remove lots of high-level duplication

src/gromacs/mdlib/nbnxn_[cuda,ocl]/nbnxn_[cuda,ocl].h is now
src/gromacs mdlib/nbnxn_gpu.h
(and similarly for data_mgmt.h files)

Renamed some struct members and function names to be neutral with
resepct to GPU flavour. Introduced some typedefs so that we can use
generic names at higher level and specific names at lower level. Not
sure if this will work in the long run, e.g. with doxygen.

Minor enhancements to macro machinery for supporting declaring
the three functions.

The above moves the code much closer to "three implementations of the
same interface," which we need in order to make a reasonable judgement
for whether there is duplication at a lower level that we should
remove. Further work of this type probably warranted in gpu_utils.*

Removed src/gromacs/legacyheaders/types/*ext.h in favour of
explicit forward declarations of structs.

Renamed various data structures along the lines of new Gromacs
standard for C-style structs (ie. struct gmx_some_name_t with no fancy
typedefs hiding whether types are structs or pointers to structs).

Moved GPU timing structs to timing module