Javadoc improvements.
Make missing option and group assertions final.
Throw more acccurate exceptions.
Revert changeset fbe1092.
Add documentation and improve readability.