Allow the path to be specified

Rather than guessing, allow the root to be set. By default assume the parent of the vendor directory
Check for the universal human readable format first
Added a new getUserAgent() method