Refactor scoreboard usage

In preparation for team colors, we need to unify scoreboard usage into a
single scoreboard per player.

Rather than creating a new scoreboard for each desired sidebar
objective, we provide an interface FSidebarProvider that allows
implementation-agnostic retrieval of the title and lines of the desired
sidebar, along with appropriate methods in the new implementation of
FScoreboard.

The new FScoreboard implementation manages the currently-visible
sidebar, with methods to set default (non-timed, with update interval)
and temporary (timed, no update interval) sidebars.

Temporary sidebars are replaced with the default sidebar upon
expiration.
Refactor scoreboard issue. Resolves issue #80.
Support modded enums in gson using custom EnumTypeAdapter. Resolves carbon breaking materials in issue #90.
Add /f seechunk command for visualizing a chunk
Limit block changes sent in seechunk to prevent client freezing. Use prettier blocks.
Add check to prevent scoreboards merging.
Show power next to member names in /f show
Add faction tag to team prefix
Add player to faction team when they log in
Add brackets in faction tag. U0.1.7
Store FScoreboards by FPlayer instead of Player
Don't repeatedly copy the Set<FPlayer> of Faction members
Allow prefix to be configurable.
Allow default prefix customization from lang file
Improve Team prefix performance

This change vastly improves performance for faction team prefix update
operations.
Add support for Glowstone

Glowstone doesn't yet support PlayerMoveEvent nor Scoreboards, so
functionality is unfortunately limited.
Remove erroneous comment
Use older version of Bukkit

For players on versions earlier than 1.7.10, our usage of
getOnlinePlayers() currently throws a NoSuchMethodError.
Only shade the gson package
Abstract Data storage method for future implementations.  Thanks to Ryan from Reactive MC

Also included:
-Heavily optimized loading process
-Optimizations for various commands.