don't raise metadata event for files that can't be parsed
jshint cleanup: don't make functions within a loop
id4: handle end of stream correctly. closes #27
correct exception for unexpected end of stream
fix ogg files unexpected end of stream
update to work with master
avoid expensive Object.keys by using a flag