update _.has to return false for null/undefined

The current behaviour (throwing a TypeError) is not helpful, and likely
not deliberate.
Merge pull request #1624 from davidchambers/has

update _.has to return false for null/undefined
update _.keys to treat sparse array-likes as dense
update _.clone and _.toArray to treat sparse array-likes as dense