This change adds nearby-area searching when dragging desktop items into already-occupied cells. This approach tries harder to find a matching area, instead of strictly rejecting invalid moves.
We also draw a "snag" during the drag to show where an item would be dropped, but only if we would drop into an alternative cell. This gives users better feedback about where things will drop.
http://b/issue?id=1634887
Done by using small button framework assets, but with manual padding adjustments to bring back to original button size.
Original author: jsharkey
Merged from: //branches/cupcake/...
Automated import of CL 143792