Fixed bug of incorrectly complaining about missing region arguments for
dependent types (template type parameters) and factored out code for
dealing with potentially missing region arguments into helper function
Fixed Typebuilder bug of incorrectly assuming logical expressions have
boolean type (if the operands are template type parameters, the result
is type dependent).

Also fixed Typebuilder bug of ignoring logical not operators.
Adding test with binary and unary logical operators with dependent type
operands.