Updates to relation source and header

Added (incomplete) implementation for update and projection. Also
changed the name of is_header to is_key for clarity, as well as
accounting for the lack of a != operator overload for attributes.
Finally, added functionality to set and get a relation's header.
Updated relation update and projection functions

Update and Projection are in a state in which they compile, but I do not
know how to test them.