Incorporating feedback / performance tweaks

* No longer use `HashWithIndiffentAccess` for mapped results (the
  performance hit is not worth it)
* Break out result type-casting into 2 paths, one that only handles the
  type-casting (previous behavior) and another that will apply mappings,
  if any are defined (new behavior)