Fixed Issue #1185 & Added documentation

The bug had to do with the list.remove(...) python function in line
233. It was being used in a way that assumed it would return the value
it was removing, creating a list of the removed values. List.remove(…)
does not return a value, so instead it created a list of [None, None,
...], which was then appended to the end of the data['attributes']
list. When str.startswith() was called on each of the members of this
list, the None values returned an error.

Just as a side note, the reason I renamed the __attrib variable to
built_in_attribs is that __attrib is worthless in the debugger (pdb).
When I try `print __attrib`, I get some sort of "Name not defined"
error. I suspect names beginning with '__' are reserved in the
interpreter for the system.