Removed visitor pattern and introduced generators

- Introducing generators allows lazy generation of software-ids and SWID
tags
- Removed print visitor. Output printing is now done with a print function which takes the generator