Use std::iterator_traits to get the value_type of an EntityIterator

Instead of non-standard exported type 'Entity'.
Use a simpler way to define the value_type

The dune-grid test suite still passes...
Don't export the codimension as 'codim'

That export is redundant: the class already exports the codimension
as 'codimension'.  Besides, the 'codim' is apparently not used
anywhere in dune-grid.  The entire dune-grid test suite still builds
and runs for me.

Removal of the 'codim' field has been decided in
http://users.dune-project.org/doodles/16
Remove unused typedef fTupel
[cleanup] Get rid of the global variable 'rank'
[cleanup] Replace some preprocessor stuff by MPIHelper
Deprecate the method Entity<0>::count<codim>()

As decided in

http://users.dune-project.org/doodles/14

and

http://users.dune-project.org/doodles/15

this method is being replaced with the new Entity<0>::subEntities(unsigned int).
Use new method Entity<0>::subEntities instead of deprecated Entity<0>::count
Use new method Entity<0>::subEntities instead of deprecated method Entity<0>::count
Test the old Entity<0>::count method only if DISABLE_DEPRECATED_METHOD_CHECK is not set
[YaspGrid] Add missing include to fix headercheck
Merge branch 'feature/yaspgrid-tensorproduct'

Integrate major YaspGrid overhaul, adding support for tensor product
grids.

This work was done by Dominic Kempf, here is his explanation of what has
changed in the branch:

- Yasp now handles coordinates through a coordinate
  container (technically this is a policy for storing and handling
  coordinates) - which now is its second template parameter. It is
  defaulted to EquidistantCoordinateContainer (see
  dune/grid/yaspgrid/coordinates.hh), which makes this change fully
  backwards compatible.

- Tensorproduct grids can be used via the container
  TensorproductCoordinateContainer. A Dune::array<std::vector<ctype>> is
  used for coordinates.

- The YaspGrid class offers constructors to allow the construction of a
  grid without explicitly constructing the coordinate container.

- The "backend file" dune/grid/yaspgrid/grids.hh is deleted. Its content
  is instead split into several files: torus.hh contains the
  communication infrastructure, ygrid.hh contains the definition of a
  Ygrid - the cornerstone of yasps implementation of a structured
  grid. ygrid.hh also got a lot of cleanup like the removal of an entire
  layer of dynamic polymorphism and documentation was added.

- If you ever fancy to do so, you can change Yasps ctype by changing
  the template parameter of the coordinate container.

* feature/yaspgrid-tensorproduct: (77 commits)
  [YaspGrid] Add missing include to fix headercheck
  [cleanup] Replace some preprocessor stuff by MPIHelper
  [cleanup] Get rid of the global variable 'rank'
  Remove unused typedef fTupel
  Communicate the minimum amount of data necessary
  Use std::bitset<dim> instead of Dune::FieldVector<ctype,dim> for the shift
  Mark all methods as const when possible.
  Use const references where possible
  [bugfix] fully remove periodic tests
  Fix Typo
  Delay features from sequences.hh
  add some information to Ygrid::Iterator output stream operator
  Remove periodic tests from the yaspgrid test
  [bugfix] use std::size_t as template argument in function
  Add test whether a sequence of coordinates is monotonous.
  [bugfix] In the merge, this line mysteriously disappeared.
  improve test output by printing the used coordinate container
  check if coordinate container tmeplate parameter is set correctly
  use const reference passing the coordinate container to makelevel()
  [doc] update documentation on ygrid
  ...
Test the old Entity<0>::count method only if DISABLE_DEPRECATED_METHOD_CHECK is not set
Use new method Entity<0>::subEntities instead of deprecated method Entity<0>::count
[YaspGrid] Help GCC 4.5 by disambiguating bitset constructor calls

GCC 4.5's standard library is broken and fails when calling the bitset
constructor with an int. Fix by switching to an unsigned long long.
remove 'comparison between signed and unsigned integer expressions' warning.
avoid some signed/unsigned warnings
First goal on the road to all entities yaspgrid is achieved.

The change does not change any functionality of the code, but instead
restructures the code. The following conceptional changes
have been made with future tasks in mind:
- {cell,vertex}_{...} variables are now arrays of codimension
- YGrid is now called YGridComponent, because entities of codimension
  other than 0 and dim contain multiple such Components
- structures called YGrid and YGridList do now exist: they give iterators
  which allow the iterations over multiple YGridComponents and std::deque
  <Intersection> respectively. Most of these implementations are stubs at
  the moment.

A lot of TODO notes have been added to the code to help with the ongoing
process.