[SMB] Initial commit for #125 topic optimization

Breaks out private and public topics into their own areas
Caches users, topic listings and users online
reduces # of sql calls by including user permission in sql instead of checking during topic list loop