Say bye to com.sk89q.worldguard.domains.*.
Added IndexableShape and its abstract brother.
Moved ProtectedRegion forward with some changes.
Finished com.sk89q.worldguard.region.shapes.
Moved Region's package to com.sk89q.worldguard.region.
Removed LegacyCsvStore and RegionDBUtil.
Indices now have a separate reindex() method because large changes to the index have to be supported.

Therefore, indices are no longer thread-safe. They don't need to be.
Fixed Javadocs for shapes.
Region is no longer abstract, added Region.setFlagUnsafe().
RegionStore's load() and save() methods can now throw IOExceptions.

ProtectionDatabaseException will be removed shortly.
RegionStore.save(Region added[], Region updated[], Region removed[]) throws IOException as well.
Removed ProtectionDatabaseException and AbstractProtectionDatabase.
RegionIndex now extends Iterable<Region>.
Region indices now implement Collection<Region>.

In addition, PriorityRTreeIndex now extends FlatIndex! That should reduce some code duplication.
Extracted RegionStore.save(Collection<Region> added, Collection<Region> updated, Collection<Region> removed) into PartiallyUpdatableStore.

This is necessary because some stores need to always save the entire database at a time (namely the YAML store), and adding an "all" parameter to the partial save method would mean that partial stores could not be supported in the future.
Made YamlStore fit its interfaces so that there are no more compile errors.

It is, however, not yet ready, because it doesn't yet support custom flags or load in the old domain data.
Changed MySQLStore to LegacyMySqlStore.

We're going to need a new MySqlStore that is not so poorly written. This is going to need a lot of work.
RegionStore and RegionStoreFactory now extend Closeable.
Implemented YamlStore.close(), which does nothing.
YamlStoreFactory added.

Example usage:
StoreFactory factory = new YamlStoreFactory(new File("regions"), "worlds/%s/regions.yml"));