TechList is able to check if a BuildList is possible or not (tried debugging, didnt find anything)
Technology has a overloaded stream operator, easier to work with

TechnologyList has new interfaces:
a) isBuildListPossible(...) - checks whether a BuildList is possible or not
b) checkRequirement(vector stuff) - checks if all requirements of vector are fulfilled. if so it writes the 'possible to build' requirements in a vector 'passedRequirement'
 on error, prints a message with details.
c) getter for passedRequirements, if getting this vector you can assume that you are allowed to build all or at least all needed requirements