Cleanup CmakeLists and require 2.8.5+

- rename deprecated variables:
  - MPI_INCLUDE_PATH -> MPI_C_INCLUDE_PATH
  - MPI_LIBRARIES -> MPI_C_LIBRARIES
  - HDF5_INCLUDE_DIR -> HDF5_INCLUDE_DIRS
- System Libraries:
  - use SYSTEM property
  - LINK_DIRECTORIES is NOT necessary, since FIND_PACKAGE always returns
    absolute paths
    http://cmake.org/cmake/help/v2.8.11/cmake.html#command:link_directories
- fix comment for CUDA_MATH
- rename and invert variable DISBALE_COMPILER_FLAGS_IN_SUBPROJECTS to
  SAME_NVCC_FLAGS_IN_SUBPROJECTS
- hdf5/libSplash
  - remove PIC_ENABLE_HDF5 Option and use HDF5_FOUND
  - check for splash.h and libsplash.a (update your libSplash installations!)
- png output
  - remove PIC_ENABLE_PNG and see if we can find libPNGwriter
  - add freetype finder
Doc: cmake 2.8.5+
fix warning in __cudaKernel

- fix warning if we use expression like 1==2?:10wq
- move preprocessor definition to ppFunctions.hpp
rewrite algorithm::ForEach, solve dependencies

- full rewrite of ForEach
  now call of operator(...) up to 4 arguments is allowed
- HDF5Writer: add functor for TmpFields and other fields
- energyDensity.kernel: change getUnit and getName to static
add documentation to HDF5 functors
update comments, add explicit type for FieldTmp operations

- add struct FieldTmpOperation whose used to define a solver for
  a species.
- HDF5Writer.hpp: delete getName() in for default field functor
add Heiko Burau to copyright list

- it was a wrong delete in a previous commit
fix compile time error in examples with ions and electrons
fix explanatory notes for pull request

- add FieldTmp.def with definition of class FieldTmp and
  FieldTmpOperation
- delete struct PhysField in Hdf5Writer.hpp
- fix typo in FieldTmp.hpp
update and fix comments

- use short notation description to descripe BOOST_PP commands
- fix same wrong documentation