Abstract! This commit is volatile. See below.

* Split up so I can make a Bukkit and Bungee version.

* This commit may change. I will, without warning, rewrite history on this
*  commit. So, don't pull it and expect it to be constant. I am
*  demonstrating ZERO care for history until this is stable.