Make final what can be

 - Also add some missing javadoc
 - Layout a TODO for future releases (breaking change)
 - Some non-breaking API changes to prevent casts in user code
     (now SerializationUtils.deserializeObject() automatically uses
      the type of it's L-VALUE)