Mostly complete Priority Log, needs log format.
The PriorityLog is mostly complete, all that remain are assorted logging
functions that aren't really used in this codebase, but could be of use
and implementations of the other priority levels, but those are mostly
the same as PriorityLog.Print. What really needs to be done is the
record.Format method, which determines the output of the log. Reasonable
testing cannot be done without it.

However, let me take some time to explain the structure and defaults of
the PriorityLog. PriorityLog will print a message when received if the
priority level of that message is set in the flag upon creation.
Otherwise, if dispose is not set, the message will be stored on an
internal heap. If dispose is set, the message will be ignored. There is
no individual setting per priority level over whether it should be
ignored or stored.
By default (if a PriorityLog is not used directly) only the error,
standard, and warning messages will be displayed. Everything else
will be discarded. This is to prevent the program from accumulating
memory usage over time. If there will be a way to limit to the amount
of stored messages in the future, this default will change.