refactor ADB
This MR was originally started for the purpose of removing task-exclusive mode from the ADB by using self-resizing hash tables, then was expanded to include refactoring of reference counting and the shutdown process.
Closes #3213 (closed)
Edited by Evan Hunt