Squashed commit of the following:

commit 89c4c582a3f0320569b81d3c7321f951a0142073
Merge: e702a50 e19c9dd
Author: Pwootage <pwootage@gmail.com>
Date:   Sat Sep 13 11:44:48 2014 -0600

    Merge branch 'master' into multilang

commit e702a509be4e6ae1a9c4969ffbc045d1eea99bf3
Author: Pwootage <pwootage@gmail.com>
Date:   Thu Sep 11 15:09:27 2014 -0600

    Call plugin enable/disable hooks

commit 99d30c25a2b56e2c814a4572c7c072897547cfa0
Author: Pwootage <pwootage@gmail.com>
Date:   Thu Sep 11 15:04:36 2014 -0600

    Reload dependants, too.

    Also added some load/unload logging so you can tell what’s going on.

commit 778eea954b1f5d9126ad9d9d8fbfe75669cae08a
Author: Pwootage <pwootage@gmail.com>
Date:   Tue Sep 9 18:08:17 2014 -0600

    Re-enable dependants when enabled

    This solves a variety of loading issues

commit 606ac49c73a09f1f73628d3fa5570d0c861682ba
Author: Pwootage <pwootage@gmail.com>
Date:   Tue Sep 9 17:44:31 2014 -0600

    Bug fix - name could be null in Plugin

commit 5dda66c60a70c5cc197bdb9c193a6f515a0ea4c6
Author: Pwootage <pwootage@gmail.com>
Date:   Tue Sep 9 17:38:17 2014 -0600

    Cleanup/javadoc-y stuff

commit 3c223d4ee51ed1e38034f2bfd2aaf06e005df4ce
Author: Pwootage <pwootage@gmail.com>
Date:   Tue Sep 9 13:51:28 2014 -0600

    Disabling a plugin should unregister

    I was doing so on unload, which makes less sense.

commit ce2841c06a5129a28cc7bd99025a6bebcd290a20
Author: Pwootage <pwootage@gmail.com>
Date:   Mon Sep 8 18:29:43 2014 -0600

    Unregister stuff on plugin unload

commit a61bb9abf79e98aca4a474ad3dc20884ae93bd2b
Author: Pwootage <pwootage@gmail.com>
Date:   Mon Sep 8 18:10:57 2014 -0600

    Sweet plugin initialization hack

    Specifically to get the name in before it is actually constructed

commit e0533d2e63b0507d930629d1ab1b7a4515bd856a
Author: Pwootage <pwootage@gmail.com>
Date:   Mon Sep 8 17:56:50 2014 -0600

    Fix name-fallback to be as it was intended

commit d2edf592cb355fd8d0cc1f7bdab862eb3eee0403
Author: Pwootage <pwootage@gmail.com>
Date:   Mon Sep 8 17:41:56 2014 -0600

    Refactor name of loader/manager

commit 9e1b146df571013c094cf0a4c839828b8403e675
Author: Pwootage <pwootage@gmail.com>
Date:   Mon Sep 8 17:33:14 2014 -0600

    Priority and thread safety fixes

commit 9185fd760f8d8dd06eb2f4810b69bd594a65d8b8
Author: Pwootage <pwootage@gmail.com>
Date:   Mon Sep 8 13:11:00 2014 -0600

    Delete obsoleted IPluginLoader class

commit cff737f9278f16cd93f08602b59bd8ca265dcb27
Author: Pwootage <pwootage@gmail.com>
Date:   Sun Sep 7 13:02:01 2014 -0600

    It is now functional, but likely incomplete.

commit 3846368b26afb9f24901a09f86501d90a83bbb4c
Author: Pwootage <pwootage@gmail.com>
Date:   Sun Sep 7 00:20:03 2014 -0600

    Begin handling dependencies. Will need some rework.

commit ea12c325ecca3a6f6fcef810bc5c0c4297314ae3
Author: Pwootage <pwootage@gmail.com>
Date:   Sun Sep 7 00:09:12 2014 -0600

    PluginManager rewrite part 3

    With exceptions!

commit 5f1d03eabd00e4148286d58a1983b04a2bd613a7
Author: Pwootage <pwootage@gmail.com>
Date:   Sat Sep 6 23:37:48 2014 -0600

    PluginManager rewrite part 2

    This is turning out a bit bigger than I imagined

commit 1adca39daf1d0f9e9c7a237864b1458451ddb331
Author: Pwootage <pwootage@gmail.com>
Date:   Sat Sep 6 21:44:43 2014 -0600

    Begin PluginLoader refactor