Initial work on relational projection

Outstanding issues:
 - Only works for buffering IValueReaders.
 - More unit tests required.