Allow hashtrees to never expire

Allow the value of `never` so that hashtrees never expire.
Clear AAE exchange queue when switching to manual mode

When switching to manual mode make sure to clear any pending exchanges
in the queue.
Change AAE to no longer delete trees until ready to rebuild

This is a port of riak_kv commit
5c346c347beb7459fe70e53275f958a68633f5fb

Before this commit, AAE trees were immediately cleared after reaching
their expiration time. However, trees would not be rebuilt until some
time in the future depending on rebuild concurrency, lock acquisition,
etc. Until rebuilt, AAE exchange was impossible.

This commit changes rebuild logic to separate expiration from
deletion.  Once a tree reaches it's expiration time, it is marked as
expired but not cleared. AAE exchange against this tree can still
occur. Only after an expired tree is actually scheduled for rebuild,
and successfully grabs all necessary locks, is the tree cleared.
Add ability to expire all trees

Add the ability to easily expire all hashtrees just like they can easily
be cleared. This may be useful sometime in production if you don't trust
the hashtrees for some reason and is also useful for testing.
Add test to verify that expiration does not prevent exchange

Make sure that when trees are expired it does not prevent them from
exchanging. The entire purpose of expiration is to provide behavior
similar to clear except that exchange can occur up until the point of
tree rebuilding.