Refactor: Use of method references instead of type enums

The eventing system is adpated to use method references to distinguish
beteen event types, rather than enums. The given action is called on
each instance of EventListener. This allows merging different event
types into one. NotificationEvent and RequestForUserInputEvent are
removed. The same is true for the corresponding listeners.
Refactor: Added build folder to .gitignore

Result of gradle builds are ignored.
Refactor: Adapted gradle build (Wrapper, Java 8, Maven Central)

Added Wrapper files (e.g. gradlew.bat and gradlew.sh). Added Java 8
source and target compatibility. Added maven central as repo and
dependecy to Google Guava.
Refactor: Moved preferences to resources folder & renaming

Moved preferences.properties to src/main/resources/configuration and
renamed it to configuration.properties. Renamed Preferences.java to
Configuration.java. Moved it to package configuration.
Refactor: Removed unused render classes

The game is currently not rendered and, thus, rendering is not needed.
Removed unnecessary classes (e.g. Renderable.java, Renderer.java and
SwingLudoRenderer.java).
Refactor: Moved Statistics into top-level package statistics

Collecting statistic information is a cross-cutting concern. Thus, all
related classes were moved into own top-level package.
Refactor: Deleted checked exceptions

ColorException and InputDataException are merely an alteration of the
IllegalArgumentException: ColorException is thrown if at least two
players share the same color and InputDataException is thrown if a view
provides invalid input data. Both lead to a system error which should
not be recovered. Therefore, IllegalArgumentException is more than
sufficient.
Refactor: Moved ShellView into view package

Additional package shellView is not needed.
Refactor: Adde util classes for Events and Players

Events and Players are used to create event and player instances.
Refactor: Adapted states to use new Events

States are adapted to use the new Events class.
Refactor: Removed HumanPlayer and PlayerAdapter

The system does not support human interaction. Thus, HumanPlayer is
superflous. PlayerAdapter is not an Adapter in the sense of the pattern.
Thus, it was renamed to AbstractPlayer.
Refactor: Altered model to reflect changes in the event system and the
removal of the Render classes
Refactor: Altered raw return types to generic ones
Refactor: Moved logic from Ludo to Game

Moved initialization logic from Ludo to Game and added InitilizationData
class.
Refactor: Rewrote CommanDispatcher to use ExecuterService and renamend
Intent to Command

The CommandDispatcher now uses the ExecuterService to run commands (no
more busy waiting). Further added a shutdown hook which shuts the
executer service down on exit. Removed unused exit method from Ludo
(logic was transfered to the game class).
Refactor: Moved class InitializationData to Configuration
Refactor: Renamed start to startGame
Refactor: Added default methods for states

Not all GameStates implement all methods. The default implementations,
therefore, throw an IllegalStateException.
Refactor: Renamed package prefix to de.gtrefs
Refactor: Made Command Factory methods static

Command Factory has no state, thus, instantiation is not needed. Renamed
methods to use Command suffix instead of Intent.