Validate that trait classes should only extend from java.lang.Object
Added lots of documentation to the three annotations that clients will be using