Add priority levels to observers

Observers can now take priority levels, which allow the user to control
the order of execution. Note that reactive expressions do not have
priority levels; since they are lazily evaluated, it wouldn't make any
sense to speak of priorities.

Another commit will be needed to add an API for changing the priorities
of outputs (probably in outputOptions?).
Allow integers or numerics for priority
Add priority to outputOption
Merge pull request #149 from jcheng5/observer-priorities

Add priority levels to observers