Restrict the set of types that a Property expression evaluates to
Move the WITH-related semantic check bits to the WITH node

Signed-off-by: Jakub Wieczorek <jakub@jakub.cc>