Preserve text node whitespace

Adds an option to preserve the whitespace for text nodes.

```dart
var parsed = XML.parse("<foo>  bar </foo>", ignoreWhitespace: false);
```

@ajlai please take a look.