Differentiate IPv4 and IPv6 for console logging

When everything is treated as an IPv6 message, the console message lines get quite long. And the IPv4 method of displaying a port after the address (just append a colon and the port) doesn't work well. So go back to treating them differently for display.
Stop mangling the actual block's hash, and work on a copy instead
Start of AuxPOW logic

Add settings options to flag if this node is on an auxiliary chain in a merged mining setup.
Add structure for AuxPOW "block" messages

P2P messages for blocks solved via Auxiliary Proof of Work have a different structure than normal blocks, so parse those slightly differently.
Make difficulty calculation more accurate

It's not really 0xffffff that's being grabbed, but rather 0x7fffff, though bits higher than that shouldn't be used. Also, there's the possibility for the number to be negative, but currently difficulty would never be negative.
Move "isAuxPOW" logic to separate function.

Makes code easier to read, since "if (this.isAuxPow())" clearly shows the intent of the flag checking, rather than all the bitwise operators.
Forgot the coinbase transaction
MerkleLink will need access to it's parent "superblock" to verify
Consistent naming convention with other Serialize functions
Start adding AuxPOW verification checks
Instead of piecemeal-ing the blockData object together, clone the event message and remove what's not needed
Rename variables for clarity
MerkleLink doesn't need to be its own sub-object

Rename the variables used to more closely match their purpose, and move all the verification logic inside the Block object itself.
Add verifications for AuxPOW Coinbase transaction
Merged Mining POW header doesn't have to exist in Coinbase transaction
Ensure all blocks that get created inherit their parent's configuration, if possible
Allow blockchains to set a checkpoint to fix the off-by-one method of difficulty retargeting

https://bitcointalk.org/index.php?topic=43692.msg521772#msg521772
Cleaner AuxPOW verification errors
Add peer to block add errors

So we can find out what node is throwing out bad blocks!
Properly validate AuxPOW blocks mining more than one auxiliary chain