Save conversation

some marionette refactors and polishing

features implements

1. tab switching
2. roster indicator when incoming message is not in current conversation
3. show recent conversation message on current chat board