Extract serialization and logging concerns as aspects

Enqueue and Perform were getting muddied up with the serialization and logging concerns. Here's a stab at splitting those out into aspects.

Curious to get some thoughts.