The best last-minute gifts on Amazon for $40 or less