Add support for C++11 range-based for-loop

I added support for C++11 range-based for-loops:
```
   for(auto &o : my_json_value->u.object)
   {
      std::cout << o.name << std::endl;
   }
```
Similar for arrays. No type checking, unfortunately - I couldn't manage that.
Technically if the begin and end functions were compatible with C++03 then the STL algorithms could be used on them, but that's for another day - they're only compatible with C++11, which is why the check for `__cplusplus >= 201103L` is in there. I tested with `clang++ -std=c++11` and tried to follow the same conding style as you.