allow inserting attributes that have zero length

Otherwise the strlen() might give an incorrect length if the attribute
value is just a part of a longer string.

Change-Id: I67eb7baecfa928fdee26c5ea9003bd7fc9b96d59
make FastAttributeList's unknown attribute value be passed as OString

Since that's how it's internally stored anyway, and I have a use case
where it's useful to limit the length by passing it to OString ctor.

Change-Id: I5903ea4f1b2cdb48c1bbceac6b8e21eb5882d377
make saxfastparser use libmlx2's sax2 interface

This avoids some manual finding of xml information, since e.g. attribute
names come split into prefix and localname, so fastparser doesn't need to do it.
Additionally using sax2 with libxml2 prevents libxml2 from doing quite some
string allocations when parsing attribute values.

Change-Id: I419f86b11ae3ba136bb912842c49d45e6a9beb03