Moved a lot of shared code between the blast query classes into a shared abstract class to reduce redundancy.