Add File class to VMLib

This also makes the Version::parse function public so that it can be called
from other classes. Also fix test program.