fix #29

This fixes a bug with empty keys. REXML returns nil for empty tags'
.text attribute so we ensure that the key is never nil but an empty
string in this case.
fix empty strings with REXML

REXML returns empty strings for empty tags. For plist this behavior is
wrong: an empty string should be returned.
several fixes for test cases