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.
* helm.el (helm-preselect): Allow using a cons cell instead of regexp arg.
* helm-semantic.el: Use a cons for preselection.
Fix a bug where Semantic buffer is empty

When a buffer is modified, it has to be re-parsed by Semantic to get a
new list of tags. This needs to be done when helm-source-semantic is at
"init" phase - to do this in current buffer - then pass the result to
"candidate" phase. When helm-source-semantic gets to "candidate" phase,
we are already in a Helm buffer and re-parsing at this stage is late. If we
modify a large portion of buffer and re-parse at "candidate" stage, we
only get an empty helm-semantic buffer.

For example, to reproduce this issue:

- "C-x h" to mark all helm.el content.
- Paste the same content into the same helm.el buffer.
- Run helm-semantic-or-imenu and see an empty buffer.

For this reason, add back helm-semantic--maybe-set-needs-update and
perform tag fetching at "init" phase. "candidates" should only get
processed candidates
Merge pull request #671 from tuhdo/exp

Fix a bug where Semantic buffer is empty
* helm-buffers.el: Show action in buffer action properly (#674).
* helm-semantic.el: Rename some symbols.
(helm-semantic--tags-cache): from helm-semantic-tags.
(helm-semantic--fetch-candidates): from helm-semantic-init-candidates
* helm-eval.el: Fix keymap conflict with tab.
* helm-source.el: Attempt to fix (#672).
(helm--setup-source): Ensure symbols are quoted.
* helm-files.el (helm-ff-cache-add-file): Allow using wild-card.
Merge branch 'master' into exp
* helm-files.el (helm-substitute-in-filename): Fix docstring.
* helm-mode.el: Allow disabling completion-in-region in modes (#673).
(helm-mode-no-completion-in-region-in-modes): New user var.
(helm--completion-in-region): Use it.