Always setSingleRange after selecting node contents

Since the code doesn't always call setSingleRange in selectNode, you can end up with some problem cases trying to select empty nodes (specifically in Firefox, which as we know doesn't like putting the caret inside of empty nodes).