Support all Slack API fields

With the current implementation in `slack-notify` is wasn't possible to pass in fields which the library didn't know about, for example `link_names`, `unfurl_links` and `icon_url`. With this patch you are able to pass in any field you want and they will be sent to the API, but the same defaults still apply.

I thought about removing the ability to pass in `fields` attachments directly in `options`, but decided to leave it in for backward compatibility. In the future you could remove lines 42-60 and instead just let users pass in fields using the standard [attachments format which Slack defines](https://api.slack.com/docs/attachments). Like I said, I've left in your easier to use `fields` field for now, but you could remove it at some point in the future.

I've also added some extra tests for the new functionality.

Thanks for the great library!