Fix: LFI random string NULL byte + bad root_path

* LFI random string NULL byte:
We could detect a vuln random string but wouldn't work without NULL byte
in some cases

* bad root_path
Default root_path was None if not found, let's return the current dir!
Add new technique + fix minor bugs + shell

A new technique has been added to LFIPwn: Data URI:
- It is possible to execute through through Data URI
- So even if no upload is possible, if data uri is possible, you might
  get code execution from LFI

Bugs fixed:
- base64 scrapper regexp would fail sometime even though there is a
  base64 look alike string
- better handling of command execution : don't try each technique everytime
  we want to execute a command

shell:
- simple loop that get commands
- it's better than launching the tool repeatedly to launch commands