Switch Python Bindings to use true callbacks

Previously, HybridSim's C interface exported a polling-based approach
to send completed requests back to the user. The Python bindings then
used this polling mechanism to receive completed transactions and then
translated back to a callback-style interface for Python code.

The new version enables a pure callback interface throughout the stack
for both the C and Python bindings.

Additionally, the first quantum prefetch rules in MT_TBS were changed to
better reflect the PREALLOCATE rules added recently. It currently prefetches
the first 512 pages (2 MB) from the list of allocated virtual memory pages.
We may be able to do better in the future.