fix append! and list?

return the original head of list for append!;
list? means it's either empty or the last is empty.