Fix another instance of shell == su detection
Add utility function create shell command from uid and SELinux context

The shell command is normally just "sh" or "su", but sometimes you need
to switch to a specific uid or SELinux context. The Shell.SU.shell(...)
method will construct a string in this format: "su[ --context
<context>][ <uid>]". 

Currently only SuperSU v1.90 supports the context parameter, so the code
auto-detects if that is the su binary currently being used. Update the
command format for other su binaries if/when that feature becomes
available. 

To reduce the chance of issues, the uid is only passed if not 0 (root,
this is the default case), and the SELinux context is only passed if
SELinux is detected to be in enforcing mode (otherwise it may be useful
for development/logging purposes only, but not end-user)