Fixes #151 Improves credential loading

Improved credentials loading with better use of promises and more flexibility with parameters.

`keyData`, `certData` and `pfxData` still work as previously.

`key`, `cert` and `pfx` now support passing either a String or Buffer, if the string isn't valid PEM data then it will be loaded as a path, otherwise the passed parameter will be used as the "data" directly.

In addition `ca` accepts an array of parameters which will be treated as above. If `ca` is not an array it will be wrapped in an array and treated accordingly.
Tidying up

Removed extra raiseError/emit as this will happen when it falls through to the fail in `createConnection`