CTags: fix navigation (especially for forward declarations)

* '^' + 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. Probably 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.
CTags: place cursor only setting

* New setting 'place_cursor_only' (boolean) enables placing the cursor
  in front of the symbol instead of selecting it.
* This is especially useful when using Vintage, because the selection
  entered visual mode when navigating in command mode, now it will stay
  in command mode.