use flycheck provided functions

Hi,
I made some minor refactoring and code clean up, mostly using functions shipped in `flycheck` instead of `helm-flycheck-*` functions, as below:

1. Use `flycheck-has-current-errors-p` function instead of `helm-flycheck-has-errors-p`. Getting flycheck error status by parsing mode line message is flaky and gives false nagative results sometimes.

2. Use `flycheck-last-status-change` variable to determine `helm-flycheck-status-message-*`. In fact, flycheck uses this variable to set its mode line status too. See https://github.com/flycheck/flycheck/blob/master/flycheck.el#L3828. I think this change make sense as the value of this variable is more intuitive.

There might some points of the original design that I missed, therefore, feel free to let me know your thoughts and/or reject this PR.

Thanks,