Represent Intcode tape as defaultdict
Use defaultdict as the underlying representation for the Intcode VM tape
instead of a list, allowing for "unlimited" tape usage and not requiring
the caller to manually pad the tape with zeroes.
Benchmarking solutions after this change seems to affect some problems
positively and others negatively by a few percent, so it seems worth the
tradeoff to have cleaner code in general.