Added ability to create regions from reads, and to merge adjacent regions

This commit adds the ability to create reference regions from read data, and adds code for checking if two regions are adjacent. Additionally, it changes the union method to allow for adjacent but non-overlapping regions to be added.

@tdanford & @carlyeks , would this change to the union method break any downstream code? I presumed that it would not, but don't know if you all have any tools that you are working on that would be impacted by this change.