Remove redundant call to worldMaps.a(). Addresses BUKKIT-4828

The WorldMapCollection object for SecondaryWorldServers(Nether, End) is
shared with the main world, so saving it again for each SecondaryWorldServer
is redundant.

This commit removes the redundant call by checking if the WorldServer is an
instanceof SecondaryWorldServer before invoking worldMaps.a().
Re-enable built in auto-save. Fixes BUKKIT-4800

When Minecraft first introduced an auto-save feature, we
were taken by surprise by how much of an impact it actually had on the performance
of the server. After investigating the potential causes of the significant
slow-downs we saw at the time, we came to the conclusion that it was a
combination of the auto-save interval being incredibly frequent and
servers already having an auto-save solution that was conflicting with the
newly added built-in one.

Since we noticed that most servers already had their own auto-save
solution, we decided to completely disable the built in auto-save by
default. In hindsight, however, we were so happy that we discovered and
squashed the cause of the performance issues that we forgot to consider
the future and, as a result, some servers have unfortunately been caught
by surprise when they ran their servers without any auto-save plugins.

Without the auto-save plugin conflict, however, Minecraft's default save
interval of 45 seconds is not suitable for the types of servers that run
Bukkit, to the point where it was negatively impacting performance. As
such, we've decided to re-enable the built in auto-save at an interval of
5 minutes for newly created servers.
Add auto-save plugin redundancy detection.

This change will print a warning when a plugin induces a forced save. A
player or console forcing a save (via a command) is ignored for purposes
of printing a warning.
Updated version to 1.6.4-R1.0 in pom.xml for RB.
Updated version to 1.6.4-R1.1-SNAPSHOT for development towards next release.
Fix our versioning system.
Don't share WorldMapCollection. Fixes BUKKIT-4871

WorldMapCollection stores scoreboard, map (item), structure, and
village information. Scoreboards are explicitly handled globally,
while villages and structures are erroneously shared.

This commit separates the WorldMapCollections to not be shared among
custom worlds. Maps are special-cased to maintain the previous shared
behavior.
Ensure maps are stored only in the main world. Fixes BUKKIT-4872
Updated version to 1.6.4-R2.0 in pom.xml for RB.
Updated version to 1.6.4-R2.1-SNAPSHOT for development towards next release.
Update CraftBukkit to Minecraft 1.7.2
Forward exceptions to log4j, cleanup logger handling. Fixes BUKKIT-4948
Handle JUL logger formatting
Make console work on Windows again. Fixes BUKKIT-4956

Something the log4j ConsoleAppender does makes the console work correctly
on Windows. After trying to pull pieces of it out and run them manually
I decided to just put the appender back. We now once again start with the
ConsoleAppender then remove it immediately after starting.
Correctly send player names for the tab list. Fixes BUKKIT-4925
Handle ChatColor-ending messages FIXES BUKKIT-4924

Now adds the component upon creation, eliminating issues where the
created component was discarded.
Fix fishing ignoring event experience.
Fix missed doors diff. Fixes BUKKIT-4908

l previously was the block id, however Minecraft's refactoring means that
the method is now passed a Block reference rather than the id.  l is now
the data value of the block, so the block retrieved with that value is not
the correct block to be testing.
Add ConsoleAppender from log4j for diff visibility
Catch all exceptions in jansi initialization. Fixes BUKKIT-4936

Both log4j and our own jline/jansi initialization attempt to catch
errors caused by jansi's use of native libraries. However both of them use
the Exception type which does not catch all errors. On Windows Server 2008
R2 Enterprise without installing extra software the required C++ libraries
are not available which causes an error that does not extend Exception. To
ensure we catch all errors I've changed both of these to catch Throwable
instead which gets us a working console minus jansi functionality.