Provide functions for C++11 range-based for loops. Document C++11 interaction

This is a pull request to address at least in parts issue 239:
  https://code.google.com/p/dealii/issues/detail?id=239
It creates new functions in Triangulation, DoFHandler and hp::DoFHandler that return objects that can be used in range-based for loops. The IteratorRange class supports this.

The pull request also introduced a new documentation module C++11 that documents how we interact with C++11 and what features we provide in support of this.
We might also consider inheriting from std::iterator in order to get the interface right. Most notably, given the example from [cppreference](http://www.cplusplus.com/reference/iterator/iterator/ cppreference):
```C++
class MyIterator : public std::iterator<std::input_iterator_tag, int>
{
  // ...
public:
  MyIterator(int* x) :p(x) {}
  MyIterator(const MyIterator& mit) : p(mit.p) {}
  MyIterator& operator++() {++p;return *this;}
  MyIterator operator++(int) {MyIterator tmp(*this); operator++(); return tmp;}
  bool operator==(const MyIterator& rhs) {return p==rhs.p;}
  bool operator!=(const MyIterator& rhs) {return p!=rhs.p;}
  int& operator*() {return *p;}
};
```
We're currently missing correct post- and preincrement operators.