title: Always fetch from related models in Bookshelf.js
body: <p>I would like <code>baffle.where({id: 1}).fetch()</code> to always get <code>typeName</code> attribute as a part of <code>baffle</code> model, without fetching it from <code>baffleType</code> explicitly each time.</p>
  
  <p>The following works for me but it seems that <code>withRelated</code> will load relations if <code>baffle</code> model is fetched directly, not by relation:</p>
  
  <pre><code>let baffle = bookshelf.Model.extend({
      constructor: function() {
          bookshelf.Model.apply(this, arguments);
  
          this.on('fetching', function(model, attrs, options) {
              options.withRelated = options.withRelated || [];
              options.withRelated.push('type');           
          });
      },
  
      virtuals: {
          typeName: {
              get: function () {
                  return this.related('type').attributes.typeName;
              }
          }
      },
      type: function () {
          return this.belongsTo(baffleType, 'type_id');
      }
  });
  
  let baffleType = bookshelf.Model.extend({});
  </code></pre>
  
  <p>What is the proper way to do that?</p>