Best practice cleanup. Untested. [ci skip]
Use extend() rather than iterating with append(). [ci skip]
Added missing return statement to XmlValidationResult.as_dict()
Refactoring of Best Practice validation code.
+ Made BestPracticeWarning a collections.MutableMapping impl.
+ Made BestPracticeWarningCollection a collections.MutableSequence
  impl.
+ Made BestPracticeValidationResults a collections.MutableSequence
  impl (as well as ValidationResults)
+ General code cleanup. Made use of new collections impl methods.
+ Reworked stix_validator.py _print_best_practice_results() to
  be more generic in the way it processes results. Results keys
  are displayed in alphabetical order now.

This needs a lot more testing!