Initial refactoring and cleanup

Still not fully happy with the structure.

To get rid of this static methods for TX generation, we will our own TX class with logic to modify Outputs and Inputs directly on the TX object.

User class should be responsible for holding userkeys, since there is a part of logic for retrieving OpenOutputs we should have something more generic like User, which will have a reference to UserKeys.

Slowly we will kill all new from the main, which will make it more testable.

Need to fill in tests tomorrow.