Change Doc to trait to allow it to be used as a cake slice.
Change the implementation of retrieve() method to make the right distinction between
library and source symbols.
Rename and privatize symbols in CommentFactoryBase to avoid clashes when cooking a cake.