IPv6 support roadmap

Usage
Although IPv6 is coming very slowly, it will be necessary to support the new IP format in the future. MediaWiki will require changes to IP.php and some of the block code/checkuser code.

Current code
A number of functions have been added for IPv6 support for blocks:
 * - expands IPs and set them to all-caps
 * - creates an IPv6 octet from an integer
 * - creates an IPv6 octet from an integer

Additionally, there a some new validation functions which use some IPv6 validation regexps:

Some of the current functions for IPv4 now check for IPv6 IPs and return output from the correct function if an IPv6 IP is given. Additionally, they all avoid the use of native bit functions and operations due to their 32 bit limits. Using them will cause garbage or invalid output.

Storage issues
However the issue of indexing and performance remains. Currently, we have:

In tables.sql.

This is problematic as IPv6 addresses, when padded out, are 32 characters.

Possible solutions

 * 1) Add 24 zeros in front of all current ipb_range_start and ipb_range_end values of character length < 32. Drop the index and recreate it as
 * 2) Add an ipb_type column, with a default value of "4". IPv6 IP blocks will have a value of "6" when they are blocked. When checking if a user is blocked, a condition will be added to the range queries that the type must be of the user's.