DNA 2 - Recode of DNA

DNA now stores blocks internally as numbers and only makes the uni_identity and struc_enzymes strings when something has changed.  This is vastly more effficient.

In addition, the API for using it has been simplified.  Common tasks, such as setting a subblock, or getting a value from the block, are handled entirely by the DNA datum with simple, easy-to-use procs.

Oh and Aurx asked for his DNA dickery panel back, so there's that, too.

Tested on local server.