fix struct.uqb test program

fixed bug w/ program assigning to an invalid register.
also implemented compile time change to use copy true and false
constants instead of creating new Construct objects.
start checking for invalid register IDs

and fail the function if one is found
add comparison for bool type
fix bug w/ not resetting func register count

when reassigning a new register count, need to make sure that the
register count is reset along with newly allocated memory.
not currently setting it down as there *shouldn't* be a penalty for having
too many registers allocated
add struct.uqb program to test suite