The GitHub repository deliberately doesn't have a vendor/ directory, so that it can be used with Composer to install the module, and this allows the package to be listed on Packagist. If you want a "pre-packaged" version with a vendor directory already setup, you can download via the marketplace or through enverido itself.
The reason I ended up doubling up the try/catch statements was that i was finding that adding the if(...) statement underneath each command didn't always trigger the Blesta view with an error, even if the setErrors(..) command had just been executed, and instead the code ended up throwing an exception where certain variables were "null". That's why the try/catches sometimes appear in both files (this and to allow a central "point" to log the API requests, rather than to manually log the request every place it's made in the module.
I'll definitely look into refactoring it in the near-future, but it's a working solution so it's not a top priority right now. Feel free to make a pull request, but by no means feel obligated to - I agree that a cleaner method is certainly a possibility, and I'm going to look into reimplementing the API in the Blesta module, using the PHP library.