Simplify valfile

- Convert valfile to mostly ordinary vector-of-pointers with values
  held as instances with common abstract interface.  This fairly
  significatnly reduces performance (about 20% per my measurements)
  due to more virtual calls and worse locality, but the vastly
  simplified interface and handling is perhaps worth it.
Implement *-closure