Refactored Version.java

The VirtualPlayers Plugin class was also effected by this change.

PlayerExecutor.java: I'm not seeing any actual changes.
gitignore: No clue what happened.

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.