Name: MailProcessor
Type: Server & Client
Description: takes a message and performs a series of processing steps on it

Interface:
	ProcessMessage(client id, message)
		returns: new headers

State:
	- message status between processing steps

Uses:
	DB

Used By:
	MailProcessorClient

Exceptions:
	System Errors
	InvalidClientID
	ProcessingFailure

Exception Handling:
	System Errors		retry; time-out and fail (throw ProcessingFailure)
	InvalidClientID		throw InvalidClientID
	InvalidServerID		report/log and register server (unknown server); retry; fail
	InvalidMessageID	report/log and ignore (possible statistics corruption)
	InvalidStatID		report/log and ignore (possible statistics corruption)