Call `rails plugin new yaffle` in the plugins guide. [ci skip]

It's confusing to not explicitly do this step.
Merge pull request #12463 from ulyssecarion/master

Call `rails plugin new yaffle` in the plugins guide. [ci skip]
typecast records returned from the db rather than to_sing everything
@associations can never have an array, so remove the dead code
decouple JoinAssociation from JoinDependency
hide join_parts internals from other classes