issue #1804: User customizable printers

Please don't pull yet, under review.

***Also, this contains @gpazo's PR for CUPS printing: https://github.com/xtuple/xtuple/pull/1797
What if there is no printer? It shouldn't even go to the datasource in that case right?