sys/platform/pc64: port the ram device from FreeBSD's nexus.c

Our kernel didn't reserve RAM in the IO manager, which lead to
mmaped IO from devices being mapped in the same address space,
most notably this lead to problems with the i915 driver, bug
sys/subr_rman: fix some issues

Some bounds checks were off which lead to bad interactions with the
ram reservation code in nexus.