Current Product Reactivity Changes

This can be merged into devel if tested and determined to be working as well as or better than the old method. It's still using the `currentProduct` object behind the scenes, but we could eventually use `Blaze.ReactiveVar` instead.