The `expand` function adds bytes size into the region; the check `size
>= self.size` isn't needed since this is an expanding function, not a
resizing one. To emphasise that, rename the function to `expand_by`.
Also include a bunch of unit tests to ensure that expansion by regions
with differing sizes works correctly.
Determine whether the program break needs extending with aligned logic,
but always return the requested, non-aligned, address.
Use `brk_addr` in unit tests instead.