Moved some functions around.
Added get/set functions & updated swap-rows.

The code for swa-rows is not MUCH simpler, thanks to the new get/set functions.
Note that inspiration for the set*/3 functions came from @rvirding's SO post
here:
  http://stackoverflow.com/a/4781219