Big update to documentation (javadoc and readme)  and some source comment updates.