Refactor extra::sync, and extra::arc

Convert functionality into RAII style.

Split functionality up into the modules.

Cleanup dependencies, and redundancies.