To add a new BraveVpnService implementation based on Architecture 2.0,
which must co-exist with Architecture 1.0 for quite a while, we need
to split service's interface and implementation. All the external
components will keep accessing VPN service via the BraveVpnService
interface, but the implementation mostly goes into BraveVpnServiceImpl.
This change revisits the approach how Brave VPN is enabled in GN.
New flags are introduced: enable_brave_vpn_v1 and enable_brave_vpn_v2.
Currently, only V1 architecture is implemented, hence, the GN flag
enable_brave_vpn_v1 is enabled by default, and enable_brave_vpn_v2
is disabled by default. enable_brave_vpn becomes a dependent flag:
it is enabled when either enable_brave_vpn_v1, or enable_brave_vpn_v2,
or both are enabled.
Implements part of https://github.com/brave/brave-browser/issues/54597