Improve defun command

- fix infinite loop bug
Do M-x coffee-beginning-of-defun at first line
- Improve coffee-mark-defun for top level defun, class
- Add utilities tests of defun commands