Using internal class for intervals

Using boost::numeric::interval was overkill for our purposes and
therefore didn't have the most useful interface.
Initial implementation of address maps, buffers, and segments
Documentation