added a way to close the demo input stream

I was having trouble with the input stream not being closed. I was using the library in an application written with Scala, and I noticed when I ran my application using sbt, allowed it to complete, and then tried to delete the Dota replay I ran it on, Windows would tell me that Java was still using the file.

I didn't see an exposed way to close the input stream, so implemented the Closeable interface on the DemoInputStream, and the PeekIterator, and TickIterator.