Complement restructuring
Big complement and port-partition refactoring. Moved everything into classes, added transitions caching in port complement. Add two options to connect components in port complement, move port partition from mode to a separated argument.