Client bug fixing and improve

* Fixed a Buffer building bug:
to make sure the value passing into Buffer constructor is a real string rather than an integer and avoid making a `new Buffer(int)` by accident from user's wrong input type

* Improved auth supports detection: 
detect for broken servers those may only return `AUTH=PLAIN LOGIN ...` and not include `AUTH PLAIN LOGIN ...`