New gml reader and writer

This idea is born from issue #972 and the discussion followed suit. This push aims to replace the old GML file format parser and generator with one stricter, faster and less buggy.

- it doesn't have external dependencies
- supports attribute lists – unlike what the `write_gml` documentation says, GML supports list attributes as long as they have at least two elements.
- ensures node ids are integers, if not sets the label as the old id value and assigns an increasing number as id.
- it's more tested.

I'm naturally opened to discussion and modifications.

Luca :)

```
>>> '©' # ascii
'\xc2\xa9'
>>> from __future__ import unicode_literals
>>> '©'
u'\xa9'
>>> '©'.encode('utf8')
'\xc2\xa9'
```
Seems to me it's not using unicode... I look into it. Thanks