Numerous AAE improvements

This pull request adds multiple improves to the AAE subsystem. Each improvement is a separate isolated commit. Reviewing this PR commit by commit would be the easiest approach.

The changes includes the following:

1. A new throttle that can be used to throttle AAE rebuilds to prevent rebuilds from monopolizing I/O.

2. A change that causes AAE trees for empty vnodes to be build instantly, rather than waiting for being scheduled in the future and performing an empty fold. With this change, newly provisioned clusters come up with AAE trees already built.

3. The ability to disable AAE expiration by setting the expiration time to `never`.

4. A bug fix that ensures in-memory AAE buffers are flushed to LevelDB before closing the AAE trees. Also, cleanly close AAE trees in `riak_kv_index_hashtree:terminate/2`.

5. When switching from automatic to manual exchange mode, the existing queue of exchanges (filled by the automatic mode) is now cleared.

6. AAE trees are no longer deleted immediately when expired. Instead, trees are marked as expired, but not deleted until right before they are going to be rebuilt (ie. after being scheduled and acquiring all necessary locks). The previous behavior was to throw all trees away, even though most would not be re-built until hours/days later.

For more information, more detailed commit message exist for most of these changes.

Sibling pull request: basho/riak_core#483, basho/riak_test#481