Change join tests to compare sorted table outputs

The row order in the join output is driven by details in the
numpy sort routine.  This ends up being different between Mac
and Linux.  To handle this the table outputs are sorted as a
list before being compared.  Since the join row order is not
guaranteed to be consistent across platforms this is OK.
Reformat table/operations.rst and add note about row ordering
Clean up join doc strings and formatting
Rework get_merge_descrs to take list of arrays

Previously get_merge_descrs() took an explicit left and right array.
It was updated, along with common_dtype(), to accept a list of arrays.
This is in preparation for other table operations like horizontal
and vertical stacking of lists of tables.