lib: string: move strlcpy() to a common place

Move strlcpy() definition from drivers/usb/gadget/ether.c to
lib/string.c because it is a very useful function.
Let's add the prototype to include/linux/string.h too.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
dm: add a command to list devices in a tree-like format

We are adding more and more drivers to driver model these days.
Compared with the ad-hoc driver system, it seems pretty difficult to
understand how drivers are working on driver model.  For ex.
  - Which devices have been bound?
  - Which devices have been probed?
  - Which is the parent of this device?
etc.

I hope this tool will help us test/review driver model patches.

Just hit "showdev" on the command line and it will list all the bound
devices in a tree-like format with Class and Probed flag.

  => showdev
   Class       Probed   Name
  ----------------------------------------
   root        [ + ]    root_driver
   demo        [   ]    |-- demo_shape_drv
   demo        [   ]    |-- demo_simple_drv
   demo        [   ]    |-- demo_shape_drv
   demo        [   ]    |-- demo_simple_drv
   demo        [   ]    |-- demo_shape_drv
   test        [   ]    |-- test_drv
   test        [   ]    |-- test_drv
   test        [   ]    |-- test_drv
   gpio        [   ]    |-- gpio_sandbox
   serial      [   ]    |-- serial_sandbox
   serial      [ + ]    |-- serial
   demo        [   ]    |-- triangle
   demo        [   ]    |-- square
   demo        [   ]    |-- hexagon
   gpio        [   ]    |-- gpios
   i2c         [ + ]    |-- i2c@0
   i2c_eeprom  [ + ]    |   |-- eeprom@2c
   i2c_emul    [ + ]    |   |   \-- emul
   i2c_generic [ + ]    |   \-- generic_59
   spi         [   ]    |-- spi@0
   spi_emul    [   ]    |   \-- flash@0
   cros_ec     [ + ]    \-- cros-ec@0

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Series-cc: sjg
Cover-letter:
dm: display devices in a tree-like format for easy debug

When I was reviewing I2C DM series, I found it difficult to
track what is going on.  "When is this node is bound/probe?" etc.

I think this tool is helpful to know which device is bound/probe.

Devices are listed like "tree" command does.

END
sandbox: enable showdev command

Of course, this command can be used on any boards besides sandbox.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>