Added function value and function type value classes

Yes, that counts as type-checking, but you can't do that without a bit more foundation around this.