Adds priority to @Produce methods

Adds a priority to producer methods, ensuring preexisting values are delivered in a predictable order.

Currently priority is from lowest numeric value (highest priority) to highest. The default priority is Integer.MAX_VALUE, so any @Produce with a priority will be fired before all others without.

I'm unsure of the naming here. The order could be confusing since the meaning of "priority" is subjective. My use is like thread priority (lower numbers are "higher").