Parser: exit the current function when we hit a semicolon, just in case

Formerly we only exited the current function for semicolons if we were
in an include/require(_once) statement. Now we do it every time, just
in case. I don’t believe this affects any core behavior, other than
potentially reporting the wrong function in a debug report. This might
be triggered by something like:

```
$object->an_array[] = ‘something’;
_debug_
```

Where formerly `$object->an_array` would have been reported as the
current function.
Parser: check the number of open braces after decrementing, instead of before, for function declarations

Since we increment after storing the value, we need to decrement before
checking the number.
Ignores: Add `WP_List_Table::screen->in_admin` to the list for WP