A bugfix in SMTP::authenticate, plus some improvements

- bugfix: in SMTP::authenticate(), when $authtype passed with unsupported method, the function returned True
- SMTP::sendCommand() - parse an extended SMTP code (if exists) to the SMTP::error array. Called it "smtp_code_ex". Also, strip out SMTP codes from all lines in "detail" field.
- SMTP::sendHello() - parsing a positive reply to discover SMTP extensions available. Methods added: parseHelloFields, getServerExtensions, getTLSAllowed, getAuthAllowed
- SMTP::authenticate() - added automatic method selection (according to server-allowed and client-allowed methods), and some checks for authentication avaliability

Welcome to the world of pull requests... I fixed it immediately back in e6f70f12483cfa737513d225467776d5600ab9e6.