Fix account.refresh to work even the second time

Previously, refreshing the token would not work the second time
because the @refreshed_authentications was caching the old token.
Increase the wait between subscription actions

Unfortunately tests still fail once in a while if we only wait
for 10 seconds between subscribing to a channel and checking that
the subscription is there, so let’s try with 11 seconds.
Add missing tests for playlists’ snippets
Allow `has_one :status` on any resource

This commit allows any resource to be initialized without a status,
and successively request the status to the YouTube API.
Move account’s authentication methods into Module

In this way, we don’t abuse the `has_one` metaphor and we can
reduce the duplication of code among the real `has_one` associations.
Remove duplication in `has_one` associations

Seven `has_one` associations were defined in the same way, so the
code can be simplified by declaring `has_one` programmatically.

This commit does not change any functionality, with two exceptions:
"account.channel" and "video.rating" were the only two `has_one`
associations that would return +nil+ when the association was not
found, rather than raising an Error. Now they raise an error too,
in coherence with the other associations.
Extract has_many for Channel#subscriptions
Extract has_many for Channel#playlists
Extract has_many for Playlist#playlist_items
Extract has_many for Channel#earnings and #views
Extract has_many: ContentOwner#partnered_channels
Extract has_many for Channel#videos
Extract has_many for Video#annotations
Remove duplication in `has_many` associations

Six `has_many` associations were defined in the same way, so the
code can be simplified by declaring `has_many` programmatically.

This commit does not change any functionality.