aa_node: store script as bytes, not stl string.

loading the ledger:
  std::string - 2.97G 49.41 CPU secs
  bytes       - 2.93G 42.68 CPU secs.
new block notification: Use a pub/sub model rather than a CV.

A consumer blocking on the CV can miss a new block if it's still busy processing the last one.
Instead, use a 'broker' + pub/sub.
note to remove unnecessary thread.
avoid generator, save 20% in load time.