Large refactor of junk marking code.

 * Broke the marking code into its own
   namespace.
 * Will no longer double notify.
 * Smarter about tracking user vs auto marked
   items.
 * Does not continue to notify you when you keep
   getting an item that is already in your inventory
   and marked as junk.
General refactoring.

 * Unified the debug output on most methods.
 * Put AddonMenu into its own namespace.
 * Move some locally defined variables into
   the most specific scope they could be in instead
   of in the file's scope. (more work to do there)