Major names refactoring

Split single `Name` into just `Name`, which contains slices, and
`OwnedName`, which contains owned strings. Consequently, `Attribute` is
split into `Attribute` with a `Name` and a slice and `OwnedAttribute`
with an `OwnedName` and a `String`.

This allows the user to pass slices into the `XmlWriter`, avoiding
unnecessary allocations. `XmlReader` will still return owned data.
Tweaked namespaces and improved some tests
Switched parser to use OwnedName/OwnedAttribute internally
Removed common::parse_name() function which was left previously by accident
Added more documentation on names
Added more documentation on emitter configuration