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
[bugfix] fully remove periodic tests

The previous cleanup wasnt sufficient. The test now compiles again.
Use const references where possible

Passing arguments to a constructor should be done
via a const reference, instead of passing by value.
Mark all methods as const when possible.

Some const methods slipped through while writing the
tensorproduct coordinate container.
Use std::bitset<dim> instead of Dune::FieldVector<ctype,dim> for the shift

The shift of a YGrid is used to differentiate element Ygrids from vertices
Ygrids etc. However, their values are only a combination of 0 and 0.5 .
The same behaviour can be achieved by using a bitset and hardcoding the shift 0.5
if an entry is true.
Additionally, the shift isnt really needed in the sizeArray helper function
and is thus removed.
Communicate the minimum amount of data necessary

Until now, the mpifriendly_ygrid hasnt been touched. Reevaluating
the minimum amount of data needed in communication lead to size and
origin of the ygrid, nothing else. The shift was communicated for
checks before, but as a user wouldnt/shouldnt touch this at all, it
is unnecessary.
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.