Create new postCallback() helper method

This just eliminates some repetition.  No change to functionality.
Missing callbacks if shell dies in Interactive mode

libsuperuser is currently able to handle failures in several different
stages:

1) If the shell cannot be started at all (e.g. missing "su" binary),
Runtime.exec() should throw an exception, causing our open() method to
return failure.

2) If the shell dies while a command is executing, and the watchdog timer
is enabled, the onCommandResult() callback will get invoked so that the
caller can handle the error.

3) If the device operator denies a Superuser request, this typically
falls under case #2 as the "su" executable will stay alive for a couple
of seconds until the operator clicks "deny."

But if the shell dies when there is no active command, any queued commands
will get stuck in limbo and the caller will never receive a status
indication.  This will probably cause the app to freeze until the
operator kills it, resulting in a subpar user experience.

The easiest way to reproduce the problem is to try running
libsuperuser_example in interactive mode on the SDK emulator (which has
a trivial "su" implementation that instantly denies root access to all
apps).  It will hang at "Requesting root privilege" forever.

So, we'll add an extra loop to send the bad news to the calling app if
libsuperuser isn't able to execute the requested commands.
Run dos2unix on *.java

Currently these source files have a mix of CRLF and LF (even inside the
same file), which causes problems with patching/merging.  Pick one format
for consistency's sake.
Merge pull request #8 from cernekee/missing-callbacks-v1

Looks good to me
Eclipse stuff
More intelligent detection if the running shell is "su"
Move su shell detection from Shell to Shell.SU
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)
Merge branch 'master' of https://github.com/Chainfire/libsuperuser into gradle
Merge branch 'gradle' of https://github.com/ramdroid/libsuperuser into gradle