Improve helm-semantic

- helm-semantic and helm-semantic-or-imenu now automatically pre-selects
  the semantic tag in context. For example, when cursor is inside a
  function like "helm-semantic", invoking the commands will move the
  highlighter to that function tag. With this change, effectively the
  commands can be used for effective navigation betweens adjacent tags
  in buffer.

- With a prefix argument, pre-select symbol at point instead. So, the
  original behavior is reserved.

- Pre-selection no longer narrows to a candidate.

- Do not enable using default as input for helm-source-semantic, since
  we already handle operation at point.

- Remove helm-semantic--maybe-set-needs-update, since we get tags
  directly using semantic-fetch-tags function, and it always gets latest
  tags when buffer is modified.

DEMO (begin when `START DEMO` is in minibuffer):

- First, I use `helm-semantic-or-imenu` to move to the function `helm-define-key-with-subkeys` and move point there.
- Then, I start `helm-semantic-or-imenu` again and `helm-define-key-with-subkeys` is preselected.
- Then, I move point to `helm-map` and execute `helm-semantic-or-imenu` again on two function `helm-next-source` and `helm-previous-source`. This time, instead of showing the current semantic tag I'm operating in (which is `helm-map`), it shows the other two tags in Helm Semantic buffer.

![helm-semantic-new](https://cloud.githubusercontent.com/assets/4818719/4716754/0efb5154-590c-11e4-856f-42a7ad59a4fe.gif)