When the SMTP destructs the socket gets closed automatically to free up resources which is good, hoewever when the SMTP Transport desctructs it also calls the disconnect on the SMTP Protocol which is in the middle of destruction and does not have a valid socket anymore. At that moment the sess is still set to true resulting in an Exception on destruction. Implementint / overriding the _disconnect from the SMTP protocol makes sure quit gets issued as well. Quit in itself already checks if the session is still there and makes sure the session gets set to false after quitting.
Merge branch 'hotfix/3641'

Close #3641
Fixes #3629
Merge branch 'fix/smtp_disconnect_on_destruct' of git://github.com/bboer/zf2 into hotfix/3645
[#3645] Added unit test

- Added unit test verifying that quit() gets called
Merge branch 'hotfix/3645' into develop

Forward port #3645