MFC r261414, r261415, r261417, r261418, r261419

  Don't call device_set_ivars() for the mmchs

  Change the way pcpu and curthread are stored per-core

  Invalidate cachelines for bounce pages on PREREAD too, there may still be
  stale entries from a previous transfer.

  Only use the CPU ID register if SMP is defined. Some non-MPCore armv6 cpu,
  such as the one found in the RPi, don't have it, and just hang when we try
  to access it.