Bye opengraph_parser, hi open_graph_reader

opengraph_parser is basically unmainted, issues are ignored
or deliberately closed without fixing. It pollutes the global
namespace and has no verification of correctness.

The opengraph gem has basically the same issues, not really maintained,
unreleased patches on master since over a year, not really smart either.

So I created my own version and while at it, why not strive try to be
complete and robust, although it's still a work in progress.

This also improves general URL detection by parsing them
from the message after stripping markdown.

An additional dependency was added to support
fetching sites that require cookies to work at all.
For the same reason Faraday's default redirect limit was
bumped.
Correctly implement OpenGraph tags

Just defining og:site_name indicates that we support the
OpenGraph protocol, but then we didn't set the required
properties.
drop deferred garbage collection
cleanup features/support
Merge pull request #5463 from jhass/deferred_gc

Drop deferred GC and cleanup features/support
Merge pull request #5461 from jhass/open_graph

Correctly implement OpenGraph tags
Merge pull request #5462 from jhass/open_graph_reader

Bye opengraph_parser, hi open_graph_reader
Add migration to drop invalid OpenGraphCaches, closes #5465

URI.extract recognized http:// as an URL, causing invalid
associations. #5347 already fixed the parsing, this just
cleans up the caches to get rid of the false associations.
Use URI.join to assemble the URL to fetch a single post

That normalizes any extra / on the base URL.
use URI.join in the specs too