Update Hit.__repr__ to better represent singular alignment
Add SearchIO._StickyObject abstract class

This class is meant to enable all other SearchIO methods to transfer
their existing instance attributes to new instances of that class;
useful for keeping attributes intact when slicing objects.
Update SearchIO objects' __repr__ for consistency
Update Search.__init__ parameter order and default values
Add a default Result.hit_key_function, which returns hit IDs
Result.__getitem__ now always return HSPs if index is tuple
Result.__delitem__ now deletes HSPs in Hits if index is a tuple
Fix sort key error, now sorting works directly on Hit objects
Add tests for SearchIO Result, Hit, and HSP objects
add demo blast xml file
Add new XML test cases
blast-xml iterator using Biopython's NCBIXML parser
Update Blast object attribute names, Add function to handle float None conversion
Remove redundant test cases for blastx and tblastx
Add blastxml test cases for all blast flavors
Update HSP attribute names
Renamed Result.hit_ids -> Result.hit_keys and Result.rank -> Result.index
Improve SearchIO._objects docstrings and add SearchIO._objects doctest
rename Result object to QueryResult
Test case expected value updates