Issue title: Showed only on the first function of the session
 Issue body: I tried add seems that in my tests the modal is showed only on the first function.
If I move in insert mode to another one I don't get anything. If I restart neovim and move to that function in insert mode the modal is showed.

Also with opening other files the issue is still there.

My dotfiles are there https://github.com/mte90/dotfiles

I have this with php files.
 Comments: 
 Comment 0: Could not reproduce with following vimrc

```vim

" Note: run PlugUpdate/Install first
set termguicolors
call plug#begin('~/.vim/plugged')

Plug 'neovim/nvim-lspconfig'
Plug 'ray-x/lsp_signature.nvim'
call plug#end()

" No need for rquire('lspconfig'), navigator will configure it for you
lua <<EOF
require'lspconfig'.intelephense.setup({
    settings = {
        intelephense = {
            stubs = { 
                "bcmath",
                "bz2",
......
                "wordpress",
                "woocommerce"
            },
            files = {
                maxSize = 5000000;
            };
        };
    },
    on_attach = function()
    	require'lsp_signature'.on_attach()
    end
});

EOF

```

 Comment 1: I did some tests with less plugins but it still happening.
There is some way to test and if this plugin is executed every time?
 Comment 2: You can turn on logs by:

    require "lsp_signature".on_attach(
      {
        floating_window = true,
        log_path = "log_path/log_name.log",
        debug = true,
      }

You should be able to see logs if the plugin is triggered.

 Comment 3: I am not getting any file with:
```
require 'lsp_signature'.on_attach({
      bind = true,
      log_path = "/tmp/lsp.log",
        debug = true,
      handler_opts = {
        border = "single"
      }
    })
```

I also get this:
![immagine](https://user-images.githubusercontent.com/403283/123134670-534e1e00-d451-11eb-9465-427e55080f68.png)

 Comment 4: Regarding the log file. Looks to me there is nothing write to the log.  Maybe you can run `touch /tmp/lsp.log` before launching the nvim.
I am not familiar with PHP, but it seems in your screenshot, there are two functions with the same signature. I am not sure whether this will introduce difficulties to the LSP.

You can also run `lua require('lsp_signature').signature()` on the pos where signature should show (e.g. after `(` and `,`) to get the signature. If this works fine, then maybe something else (e.g. event & timer setup) does not work correctly.
 Comment 5: In the log executing the function I got this:
```
sig_cfg bufnr, winnr not valid |2: 3 |3: 1002
```
And executing again didn't showed again the window.

About the minimal with this:

```
" Note: run PlugUpdate/Install first
set termguicolors
call plug#begin('~/.vim/plugged')

Plug 'neovim/nvim-lspconfig'
Plug 'ray-x/lsp_signature.nvim'
call plug#end()

" No need for rquire('lspconfig'), navigator will configure it for you
lua <<EOF
require'lspconfig'.intelephense.setup({
    settings = {
        intelephense = {
            stubs = { 
                "bcmath",
                "bz2",
                "calendar",
                "Core",
                "curl",
                "date",
                "dba",
                "dom",
                "enchant",
                "fileinfo",
                "filter",
                "ftp",
                "gd",
                "gettext",
                "hash",
                "iconv",
                "imap",
                "intl",
                "json",
                "ldap",
                "libxml",
                "mbstring",
                "mcrypt",
                "mysql",
                "mysqli",
                "password",
                "pcntl",
                "pcre",
                "PDO",
                "pdo_mysql",
                "Phar",
                "readline",
                "recode",
                "Reflection",
                "regex",
                "session",
                "SimpleXML",
                "soap",
                "sockets",
                "sodium",
                "SPL",
                "standard",
                "superglobals",
                "sysvsem",
                "sysvshm",
                "tokenizer",
                "xml",
                "xdebug",
                "xmlreader",
                "xmlwriter",
                "yaml",
                "zip",
                "zlib",
                "wordpress",
                "woocommerce"
            },
            files = {
                maxSize = 5000000;
            };
        };
    },
    on_attach = function()
    	require'lsp_signature'.on_attach()
    end
});

EOF
```
I don't get anything.
 Comment 6: Each time the signature been triggered, you should see a log.  For your case, it not been triggered. Is LSP works correctly?

It also might be something special with your code.
Can you try some code very simple to see if signature works, e.g.:

```
<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo "Example function.\n";
    return $retval;
}
?>
```
 Comment 7: You are right seems that with a file like this:
```
<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo "Example function.\n";
    return $retval;
}

function test($test){
}

foo();
foo();
test();
?> 
```
I get the window at every function but not with other php files (with my nvim config).
I tested other php fields with more functions and code and is not showing anyway.
 Comment 8: Could you send out some php files (or a open-source PHP project) that can reproduce this issue.
I am not using PHP so it is a bit hard to reproduce your issue.
 Comment 9: Sure, I was looking on my projects for something open source.
I was testing also with this project: https://github.com/WPBP/WordPress-Plugin-Boilerplate-Powered/blob/master/plugin-name/rest/Example.php

in rest/example.php file or internals/posttypes.php
 Comment 10: I tried the github php project and it seems work correctly.


https://user-images.githubusercontent.com/1681295/123502031-8cbe9d80-d68c-11eb-9db1-f715f0555dc4.mov



<img width="942" alt="Screen Shot 2021-06-26 at 2 37 57 pm" src="https://user-images.githubusercontent.com/1681295/123502007-4d904c80-d68c-11eb-9b00-799501cdbd55.png">


My vimrc
```
set termguicolors
call plug#begin('~/.vim/plugged')
Plug 'neovim/nvim-lspconfig'
Plug 'ray-x/lsp_signature.nvim'

call plug#end()

lua <<EOF
require'lspconfig'.rust_analyzer.setup{}
require'lsp_signature'.on_attach({log_path = "/Users/ray.xu/tmp/sig.log", debug = true})
require'lspconfig'.intelephense.setup({
    settings = {
        intelephense = {
            stubs = { 
                "bcmath",
                "bz2",
                "calendar",
                "Core",
                "curl",
                "date",
                "dba",
                "dom",
                "enchant",
                "fileinfo",
                "filter",
                "ftp",
                "gd",
                "gettext",
                "hash",
                "iconv",
                "imap",
                "intl",
                "json",
                "ldap",
                "libxml",
                "mbstring",
                "mcrypt",
                "mysql",
                "mysqli",
                "password",
                "pcntl",
                "pcre",
                "PDO",
                "pdo_mysql",
                "Phar",
                "readline",
                "recode",
                "Reflection",
                "regex",
                "session",
                "SimpleXML",
                "soap",
                "sockets",
                "sodium",
                "SPL",
                "standard",
                "superglobals",
                "sysvsem",
                "sysvshm",
                "tokenizer",
                "xml",
                "xdebug",
                "xmlreader",
                "xmlwriter",
                "yaml",
                "zip",
                "zlib",
                "wordpress",
                "woocommerce"
            },
            files = {
                maxSize = 5000000;
            };
        };
    },
    on_attach = function()
    	require'lsp_signature'.on_attach({log_path = "/Users/ray.xu/tmp/sig.log", debug = true})
    end
    });

EOF

set mouse=a
```

 Comment 11: ```
last para |2: { "CursorMoved", "CursorMovedI", "BufHidden", "InsertCharPre" }שׁ  |1: 

```
This is what I get with this config file and with the last neovim trunk nightly version compiled by me.

There is just one line. There is a way I can test if the plugin is running or how to many time is executed?
 Comment 12: I think the plugin signature function return early in your scenario. 
You saw this log because:
```
    if sig and sig[1].parameters == nil or result.activeParameter == nil or result.activeParameter
        + 1 == #sig[1].parameters then
```
This means you do not have an active signature returned from PHP lsp.

You can uncomment  (around Line: 247)
```
    local sig = result.signatures
    log("sig", result) -- uncomment this
    -- if it is last parameter, close windows after cursor moved
    if sig and sig[1].parameters == nil or result.activeParameter == nil or result.activeParameter
 
```
And this will give detailed info for your PHP lsp.  I think it may be related to intelephense in a specific environment (e.g. widows vs. linux vs Mac etc)
 Comment 13: If you saw the above log, you should see the signature windows popup. Is that correct? Because I saw the same log as you did and I can see the signature popup.
Do you also have log when the signature windows failed to popup?

Thanks!

 Comment 14: No I have just this.
 Comment 15: Is the issue still occur?  There are multiple commits to address floating window position related defects.
 Comment 16: Now it is working I don't know why but works.
{'source': 'GithubIssues', 'repo_name_with_owner': 'ray-x/lsp_signature.nvim', 'issue_id': 928124714, 'repo_stars': 1174.0}