Refactoring IPC::Open3::Callback

Refactored IPC::Open3::Callback by:
- declaring $VERSION with our
- defining object instance with all attributes and using lock_keys from Hash::Util to avoid autovivification
- defining default values to some attributes when no parameter is received to do so
- using logdie() from Log::Log4perl instead of die()
- logging complex statements only after is_debug() and is_error() is verified (Log4perl)
- added DESTROY method to kill child process
- updated Pod
- refactored tests as well