WIP: Filter to add certain headers to I2P sites
This MR changes how X-I2P-* headers work. It creates an abstract class which is used for creating filters which add additional headers, the "XI2PHeaderFilter" abstract class. This has several public members which are used for configuration, and 2 abstract methods which are used for caching and retrieving header values and pairing them with keys. It also migrates X-I2P-Location to use the abstract class, and adds a new X-I2P-* header, X-I2P-Hostname which allows the admin to serve a link which includes an i2paddresshelper, thereby providing their own hostname/key pair to visitors.
TODO:
- Client side of X-I2P-Hostname for HTTP: Make header trigger jump-helper interstitial when it encounters the header on an HTTP Site.
- X-I2P-Magnet "Torrent-Index" filter, which computes a magnet link of the file being served, appends a web-seed to the magnet link, and serves the result as the X-I2P-Magnet header.