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
Well, currently the model [sends the action being requested - "print"](https://github.com/xtuple/xtuple/pull/1865/files#diff-2588a0efdf4164050a9b1bec6356df09R210). If there is no printer defined/if the printer = "Browser", the action to be sent to the datasource should be ["display"](https://github.com/julesstp/xtuple/blob/1804-CUPS/node-datasource/routes/generate_report.js#L331). So, I suppose I could move [this logic](https://github.com/xtuple/xtuple/pull/1865/files#diff-45db79411d498a991a88bc194f0a3370R475) to model.js but I can't see it being completely moved to the datasource unless I rewrite the generate_report route to determine what to return instead of depending on "print" vs. "display" actions sent over to it. Make sense?