Use SHA256.digest
Use java.util.Arrays.copyOf{,Range}
Add and use utility method randomBytes

Cleaner and about 30% faster when used with MersenneTwister.
Only tested for MersenneTwister; copy otherwise.
More Arrays.copyOf{,Range}
Deprecate duplicated freenet.crypt.Util.byteArrayEqual
Use freenet.support.Fields.byteArrayEqual more

And get rid of some duplicated code.
Fix fallback in NodeRestartJobsQueue removeRestartJob()
Correct selection %s on friends/strangers pages

Prevent false visual warning about high selection rates causing backoff by including both opennet and darknet peer data in the totalSelectionRate.
Locking fix / minor optimisation: Call getNumberOfConnectedPeersToAim outside of locks, and cache it within methods where possible.
Delete unused methods.
Locking fixes: Synchronize on getting myPeers etc.
Low risk locking fixes for PeerManager (called only by freenet/node/simulator, always called by a thread main method etc).
Higher risk locking fixes for PeerManager. Everything that uses myPeers should now use synchronized(this). Even though we do copy-on-write, it's still not okay to access it without locking.
Locking fix: BlockOfferList should lock FailureTable since it needs to remove itself.
Use logging infrastructure (trivial optimisation)
Synchronization fix
Run ARK inserter update off-thread.
Cleanup concurrency issues in IP address detection code: Separate callback and non-callback getAddress()'es.
Check the order, so avoid bogus calls to redetectAddresses(), and cleanup code.