Make sure Job#initialize has a filename

According to tests, initialize should raise ArgumentError, not RuntimeError.
Raise exception if job failed to print.

Not entirely sure I'd prefer this, but the tests indicated that an
exception is expected.
Fixup tests for where there is no default  printer

My machine was setup this way, and most tests failed
Change PrintJob's job_id accessor to read/write

Otherwise there's no way to get the status of an existing job