Adds diagnostic tracking to targets, updates the API to check for and emit diagnostics stored in the target, updates the python interface to raise exceptions based on returned diagnostics, and adds a new error/exception for sequences that are too long.
This PR supersedes #211
Adds diagnostic tracking to targets, updates the API to check for and emit diagnostics stored in the target, updates the python interface to raise exceptions based on returned diagnostics, and adds a new error/exception for sequences that are too long.