External auth automatic sm pull request

This pull request contains functionality developed for [grindr.com](http://grindr.com). Mad props for going open source!
The main points are:

 *  Escalus can use custom modules for creating users on various backends `{escalus_user_db}`

 *  Escalus_client on a TCP connection can handle XEP-0198 `<r>` + `<a>` request+response actions automatically. This way the test cases for interactions involving stream management (but not testing the ack mechanism itself) stay clean. If you want to have manual control over when to process `<r>`s and send `<a>`, you can set the `{manual_ack, boolean()}` option for a given client in `test.config`.

 * A given connection may have its H (stream management handled stanza count) parameter set. This is useful when testing session reëstablishment.

 *  Escalus_clients can automatically request XEP-0280 (carbons) functionality for their session. This option needs to be set as `{carbons, boolean()}` in the escalus user's proplist in `test.config`.

* Some additonal stanza constructors & predicates were added.
This is already in the upstream and we thought it's better not to have both `/1` and `/2` variants as the default `/1` doesn't add any value - just redundancy. While this is sometimes useful for backwards compatibility, let's not write code that's "legacy from day 1" ;) (and this function is a recent addition)