Add IP storage.

This pull request:
* Adds PlayerIPStorage interface to store IPs.
* Adds implementation of PlayerIPStorage with YamlStorage.
* Adds JoinIPStorageListener to store IP on player join.
* Changes PingListener to use IPs gotten from PlayerIPStorage.
* Adds getStorage method to IconManager, and initializes a storage variable on enable.

Using an interface and an implementation in YamlStorage in order to allow for multiple different storage methods in the future, such as MySQL (if that isn't overkill).

I've tested briefly with localhost and seems to be working correctly and persisting through server reboots.