SMTP appender: use patternLayout for email subject

This pull request changes the handling of the SMTP 'subject' option to use patternLayout instead of messagePassThroughLayout.

This means you can specify an appender like:
```javascript
appender: {
    type: 'smtp',
    recipients: 'errors@company.com',
    subject: '%p on %h: %m'
}
```

Which will produce email subjects like: "ERROR on DEV-BOX03: foo is not a valid widget"

Apart from enabling pattern specifiers (%m etc), it works exactly as before:
- if subject is not specified, the subject will contain the first log message
- if a literal subject string is specified (eg, 'ERROR! please investgate...') it will be used verbatim