Allow custom template

Currently, the generate method is private and the standard invoice
template cannot be overriden. A setter is added allowing setting of a
user template path. In case none is set, the default is used.

A use case would be changing the invoice signature and stamp. Currently
it is not possible if checked out as a composer project.

Additionaly, the __DIR__ shorthand is used instead of dirname(__FILE__)