Made `Agent` an abstract class, pushed existing implementation into a private `SecretAgent` class and added a java-lovin' factory method. See #3108
Make `SecretAgent` final (sorry James, you knew it couldn't last forever!) and standardised doc comment.
Add `Actor.create` factory method to 2.1->2.1 migration docs
Merge pull request #1213 from kevinwright/abstract-agent-3108

Made `Agent` an abstract trait