fix navigation (especially for forward declarations)

* Fixes #122.
* Makes #156 obsolete.
* `'^' + pattern[:-5] + '$'` <- How is this supposed to find anything
  useful? So `look_from` will be -1 or total crap and `view.find` will
  start searching from the beginning or totally off and match forward
  declarations first because the `$` (in `find_source` call) was
  missing.
* `follow_tag_path` returns `None` if tag path could not be followed,
  so we can react properly.
* What we really want is the symbol, not the `ex_command`, BTW the
  `ex_command` could be a line number.
* If the `ex_command` is a line number, the `view.line(look_from+1)`
  rescued the wrong `view.find(tag.ex_command...`) call. This is not
  needed anymore.
* `r"(?:[^_]|$)"` was added to avoid selecting the first part in
  e.g.: `type_t type;` when searching for type. Maybe that's not
  a perfect solution. Hopefully there is no impact on other languages,
  but at least it seems to work for C and Ruby. I can't think of
  a language where a symbol can be followed by `_` without being
  another symbol.
* `comment` scope had to be removed otherwise e.g.:
  `/*bla*/ static type_t type_2;` failed.
* /!\ New behavior: It does not select the whole line any more,
  only the searched symbol with the cursor in front of the symbol.
  This gives the benefit of highlighting other occurrences automatically
  by sublime. Furthermore it is possible to use `find_under_expand`
  (`Ctrl+d` by default on Linux and Windows).
Merge pull request #176 from EdVanDance/fix-navigation

Fix Navigation, Mostly for Forward Declarations