Improve BP_Component methods relative to setting BP Rewrites
So far BP_Component::add_rewrite_tags(),
BP_Component::add_rewrite_rules() & BP_Component::add_permastructs()
were just firing hooks. Thanks to the BP Rewrites plugin we were able to
test how we can use them to actually enjoy the WP Rewrite API in
BuddyPress. Compared to what was tested in this feature as plugin, some
improvements has been brought so that it's easier to benefit from the BP
Rewrites API for custom components (analyzing the included PHPUnit tests
can give BP plugin authors a preview about how to process).
Introduce the BP_Component::pre_query() method to avoid superfluous Post
queries when a BuddyPress page is displayed.
The src/bp-core/bp-rewrites.php file has also been inited, this is the
place where all Core component rewrites function will be placed.
Props r-a-y, johnjamesjacoby, boonebgorges
See #4954