Significant refactoring of registration
Significant refactoring of registration

- Constructor exposed through Register class
- RegisterMethod and its subclasses implement fit, getTransform, and
run methods, which compute registration parameters
- RegisterModel stores registration parameters, supports saving and
loading to JSON, and transforming data using the parameters

pearsonlab/thunder,mikarubi/thunder,jwittenbach/thunder,j-friedrich/thunder,kunallillaney/thunder,thunder-project/thunder,mikarubi/thunder,kcompher/thunder,pearsonlab/thunder,j-friedrich/thunder,oliverhuangchao/thunder,kcompher/thunder,kunallillaney/thunder,broxtronix/thunder,oliverhuangchao/thunder,zhwa/thunder,broxtronix/thunder,poolio/thunder,zhwa/thunder,poolio/thunder