Patch installation fixes

Fixes related to installing patches with EULA (license):

- Properly track the patch <-> EULA mapping (save also patch and package ID when saving license text), display package name when displaying EULA, remove only the relevant EULA after patch installation (not all as before). <br/>This avoids problems when installing more patches with EULA as we now know which EULA belongs to which patch.

- Directly install the patch when accepting the EULA ("Accept" -> "Accept and Install" button), no need to go back to the patch selection and install it once again. This also avoids displaying an error after accepting the EULA (patch installation failed because of missing EULA agreement) so the user is not confused.

- Use File.move or File.delete for copying and moving instead of shell commands - faster, no fork and shell exec needed, secure (no problem with escaping file names)

- Added logging