progress function re-scoping
wrap detail.stream in Stream object

also remove passing of function-scoped vars
add progress stats to actives cache
add back in some active download cancellation abilities