emacs: new modes and cleanup

- Switched to using session over desktop
- Installed smart-mode-line
- Added cmake-mode support
- Added handy packages idomenu and undo-tree
- Switched back to using GNU Global for source tagging