code: function strGetter(that, name, collection, method, param) {
          var res;
          if (!that.constructor[collection].hasOwnProperty(name)) {
              throw new Error(method + ': name not found: ' + name);
          }
          res = 'undefined' !== typeof that[collection][name] ?
              that[collection][name] : that.constructor[collection][name];
          if ('function' === typeof res) {
              res = res(that, param);
              if ('string' !== typeof res && res !== false) {
                  throw new TypeError(method + ': cb "' + name + '" did not ' +
                                      'return neither string or false. Found: ' +
                                      res);
              }
          }
          return res;
      }
docs: ## Helper methods. 
  ### strGetter
  
  Returns the value a property from a collection in instance/constructor
  
  If the string is not found in the live instance, the default value
  from the same collection inside the contructor is returned instead.
  
  If the property is not found in the corresponding static
  collection in the constructor of the instance, an error is thrown.
  
  @param {object} that The main instance
  @param {string} name The name of the property inside the collection
  @param {string} collection The name of the collection inside the instance
  @param {string} method The name of the invoking method (for error string)
  @param {mixed} param Optional. If the value of the requested property
  is a function, this parameter is passed to it to get a return value.
  
  @return {string} res The value of requested property as found
  in the instance, or its default value as found in the constructor