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 behaviour 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. Here is `semantic-fetch-tags` docstring:

```text

Fetch semantic tags from the current buffer.
If the buffer cache is up to date, return that.
If the buffer cache is out of date, attempt an incremental reparse.
If the buffer has not been parsed before, or if the incremental reparse
fails, then parse the entire buffer.
If a lexical error had been previously discovered and the buffer
was marked unparseable, then do nothing, and return the cache.
```

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)