Updated Version.java compatibility checker.

Todo: Add a method() to change the regular expression that splits the
version string into its parts.

The default behavior is to split the version up by periods and dashes.
Refactored Version.java

The VirtualPlayers plugin class was also effected by this change.

Renamed factory methods
.getPlugin(String) and .getPlugin(Plugin) to
.getVersion(String) and .getVersion(Plugin)

Added:
private Version(Version) constructor
public Version(Server) constructor
.getServerVersion() factory
.getNmsVersion() factory
.setSeparator()
.getPlugin() returns a Plugin.

Added:
Several methods were added to support weird versioning systems that broke
compatibility checking:
int length()
boolean equals(String) - this method ignores case
boolean contains(String)
boolean search(String regex)
Version getSubVersion(String regex) - factory
private Version setVersion(String)

The getSubVersion() method returns a completely new Version object (if a
match is found) and uses the private method .setVersion() to change it.

Primarily used if you're checking for Dev versions, etc.