@steffengy noticed that the code to round allocation sizes up to the neareset page size was incorrect. It was masking off the low bits rather than the high bits. Also, while here, add more comments to `Memory`'s implementation.
@steffengy noticed that the code to round allocation sizes up to the neareset page size was incorrect. It was masking off the low bits rather than the high bits. Also, while here, add more comments to `Memory`'s implementation.