Changed option output to array form and added equals() and hashCode().

Formatting the options as a String is less useful than
the array form.

Updated comments and Javadoc