Updated String library to use C++11 iterators.

This will allow using the String library in a ranged for loop:

```C++
String s = "Hi, this is a test";

for( char c : s )
  Serial.print( c );
```
Removed C++11 dependency for `begin()` and `end()`

As I was not able to base the return types of `begin()` & `end()` off the c_str() function, I have changed the source so the features can be used by C++98 code, while still allowing ranged loops in C++11.
Merge pull request #1 from Chris--A/patch-1

Patch 1