[bilibili] use faker to fix 403 problem (CDN rejecting Python urllib's user agent)
==================================================================================
Bilibili's CDN now may reject requests with 403 when `urllib`'s default user agent is used. This appears to be location-based (and started today for me; others might have experienced this for a while): I tested on a bunch of U.S.-based nodes and all requests were rejected without a spoofed user agent, but when I tested on a Mainland China-based node, the requests went through.
To actually use the faker I had to make changes to faker logic in `common.py` (currently when `faker` is `True`, `headers` is simply ignored). Please refer to the commit message for details.
This PR appears to overlap with #1698, which attempts to do a bunch of things and hence hard for me to quickly evaluate. It also seems to roll its own user agent instead of using the existing faker. This PR only attempts to do one thing and hopefully do it well.