Don't create fake LogBook when we can not fetch one

When there is no LogBook nor backend in ZookeeperJob or something is
wrong with book data, we now return None from `book` property instead
of new (fake) LogBook. Having two (or more) logbooks with same uuid but
different data is too confusing and makes root cause of the problem
(backend or jobboard misconfiguration) less obvious.

This change also adds `book_name` and `book_uuid` properties to Job
abstract class to provide a way to access book data even if book
itself cannot be fetched.

Change-Id: Iae1f918e35d41794fc348860e6aa3b52ae2211f4