issue #1804: Printer object, User Preference Print Settings

This is built on top of @gpazo's https://github.com/xtuple/xtuple/pull/1797 

Old (closed) PR: https://github.com/xtuple/xtuple/pull/1865

UAT:
1. Navigate to Billing > Invoices 
2. Print an Invoice and verify that it prints to a new tab on the browser

To setup and print to a printer:
1. Install CUPS and CUPS-PDF
2. Add the Printer to the Printer object in Setup > Printers. Use the EXACT name as the CUPS printer name
3. Navigate home then Actions > Preferences. Set Invoice to the CUPS installed printer.
4. Re-print Invoice, verify that it prints to the selected printer
Also tried:
> print.stdout.on('data', function (data) {
        console.log('stdout: ' + data);
        done();
      });

      print.stderr.on('data', function (data) {
        console.log('stderr: ' + data);
        done();
      });

      print.on('close', function (code) {
        console.log('child process exited with code ' + code);
        done();
      });