cast num as int
add ability to provide obtained items

can pass --obtaineditems argument to give a file in the same format as
neededitems. this will deduct requirements for items you already have.
add test cases for obtained items