introduce flasher and file picker

introduces a custom file picker, which can highlight matching files
for the flasher we want to only flash zip files, so the target extension
is set to zip and the file picker highlights all zip files.

the file picker is fully using root, so we can pick
ANY file at ANY directory and use it.

this allows us to flash zip files from /data, /system or any other path,
as well as any external storage we have.

the flasher allows to specify multiple files and flashes them one after
another. the flasher honors the order the user added the files.
this allows to flash for example GAPPS first, then a package which modifies
the previously flashed GAPPS and then a third packages, which removes them
again (pretty useless task but it would be possible)

also the flasher allows to specify the type of recovery you have.
by default it creates a script for CWM and OpenRecovery, but allows to
only create the script for CWM or OpenRecovery as well.

Change-Id: I639ff7a225c119184aaab8eccc48f876eeb5417a