[#3882] Fix issue with expired WeakRef callbacks

- Added code that validates that we have a callback from the listener
  prior to executing it. If not, we unregister the listener. This
  reinstates the original behavior from the tests (which were failing
  when WeakRef was present).
Fix for console router not accepting controller word as part of a route
Merge pull request #4182 from robertboloc/#3358

Issue #3358 - Fix for console router not accepting controller word as part of a route
Merge branch 'hotfix/4182'

Close #4182
Merge branch 'hotfix/3882' of git://github.com/weierophinney/zf2 into hotfix/3882

Close #3882
Close #4173