Big refactor that turns most specialization parameters into runtime variables and introduces the concept of 'probmodules' for modular, reusable definitions of probabilistic functions and types.