Allow array_column() to take -1 as a valid value in third param

Also do some cleanup and simplification to make this code more
readable in the long term.