Added unit tests

converted directory structure to default Maven
in order to easily add test classes.
Added HolographicDisplays classes

http://dev.bukkit.org/bukkit-plugins/holographic-displays/

Since HolographicDisplays is an optional dependency, API methods that
create Holograms will return a hologramID (since we cannot return a
hologram because the Hologram class may not even exist at runtime on the
server).

Save the hologramID and use it to perform changes later (like stop
displaying it, or change the location, etc).
Refactored to make testing easier.

https://www.youtube.com/watch?v=wEhu57pih5w&list=PLD0011D00849E1B79

Misko says that contructors should only ask for what they need and make
assignments to fields. Misko says constructors should not be doing "work"
by asking for an object... And reaching thru that object to get what it
really needs/wants.

Originally, I wanted to make it easy for the end-user of this class to
simply pass the name of the plugin, and have the Version class get that
plugin (and its version).

This "work" has been moved to the factory methods:
getPluginVersion(String pluginName) : returns new Version object.
getPluginVersion(Plugin plugin) : returns new Version object.
getServerVersion() : returns new Version object.
getNmsVersion() : returns new Version object.

note on Constructors:
Please use the factory methods for generating new Version objects.
Because the old constructor
new Version(String pluginName)
is no longer valid. it has changed to
new Version(String version)

This new contructor is used by getSubVersion(regex).

The field String version; is now final.
VERSION OBJECTS ARE NOW IMMUTABLE.

STRING WRAPPERS HAVE BEEN DELETED.

Instead, just call toString() then call any String method you desire.

Some example use cases:

Version gm = Version.getPluginVersion("GroupManager");

if (gm.toString().contains("Dev") { }

Version enjin = Version.getPluginVersion("EnjinMinecraftPlugin");

if (!enjin.isCompatibile("2.6.0") { disableThis(); }

Version hd = Version.getPluginVersion("HolographicDisplays");

if (!hd.isCompatibile("1.8.4") { }

Version ba = Version.getPluginVersion("BattleArena");

if (!ba.isCompatible("3.9.7.3") { disableThis(); }

String NMS = Version.getNmsVersion().toString();

Version server = Version.getServerVersion();

if (!server.isSupported("1.7.10-9") || !server.isCompatible("1.2.5")) {
   disableThis();
}
Deprecated

There is a good chance that this class will no longer be used.

The original use-case-scenario was a mis-configured arena that doesn't
allow item drops.

if the server Admins accidentally mis-configure the Arena to NOT allow
item drops... Then it'll break BombArena, because the bomb would only be
able to be picked up ONE TIME.

This class was used to make a PlayerDropItemEvent and call it.
Added commands to play sounds.

/bomb soundlist <pageNumber>
/bomb sound <String>

These are convenience commands... To be able to play sounds and make it
easier to choose which sound you want to use in the configuration of
BombArena.

BombArena will have future support for Sounds.
Changed project's file structure to default Maven

in order to make testing easier (so I can use the src/test directory).

Most of the actual changes in this commit are in BombArena.java

Support for HolographicDisplays has been added.

onPlayerDeathEvent() no longer creates a PlayerDropItemEvent. This means
that checks need to be added to make sure that Arenas allow item drops.