init: uevent: Add msm video symbolic link handling

Create meaningful symbolic links for video encode/decode
devices based on link_name sysfs node so that video client
doesn't have to rely on dynamic dev node names like device32,
device33 etc.

(cherry picked from commit d26280b5d327994c3c89c573de7738b3f47b8600)
(cherry picked from commit c8f57166fadd26648bd9ee0a979a789c944ccba3)
(cherry picked from commit 72e4c35b308270f44795ebcc196319096397c6c1)
(cherry picked from commit aec73795517e7f49c5ebbea611da612b99ba75fb)

Change-Id: Id308a10d3e601616b63ecd1373809c96f0d04435
init: Check for symlinks with lstat() not open()

Using open() with an O_NOFOLLOW flag will result in a file falsely
being determined to be a symlink if the open fails for another
reason.

For example, a character device that isn't ready due to the
underlying hardware not being initialized yet will fail to open()

An example of this are any CG2900 device files prior to
execution of ste-cg29xx_ctrl

This uses lstat() instead of open() with O_NOFOLLOW to check
whether a file is a symlink or not.

Change-Id: Ie0d8d94b426c84c29b1b04d41a4cc15536cb307c
Add support for -R (recurse) to init chown builtin.

This is helpful for setting ownerships on entire directory trees,
such as sysfs and selinuxfs, particularly when the precise set of
files is dynamically generated at runtime.

Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>

Change-Id: I81070ea36fd7ffcab4ee8b3ef1bb0028d4b7839c