Merge branch 'release/2.3.1' into develop
[BUGFIX] Component state transition thread safety

Ensure that components receiving a response and a complete event in quick succession cannot overlap, such that the component fully transitions to the executing state before beginning to transition to complete.
[FEATURE] Add support for URI attribute to Dial command
[FEATURE] Allow generation of a random call URI for a client
[FEATURE] Support for dial requests with a URI on Asterisk
Merge pull request #212 from adhearsion/feature/dial_specify_uri

Support dial pre-assigned URIs
[FEATURE] Rayo events should be timestamped with dispatch or receipt time

If an XEP-0203 (Delayed Delivery) tag is included, we use it's timestamp; otherwise, we use the time of receipt.
[FEATURE] Copy timestamps from AMI events to Rayo events for signalling

Ringing, Answered, Hangup, Join, Unjoin, etc
Merge pull request #213 from adhearsion/feature/timestamped_events

Support timestamped Rayo events
[UPDATE] Bump to 2.4.0
Merge branch 'release/2.4.0'