Continued Forward Checking

Fixed is_assigned and initialize_domains so that given variables don't
have domains and assigned variables keep their domains from the point
of assignment.