code: function _what_is(in_thing){
      var retval = null;
      if( typeof(in_thing) != 'undefined' ){
  	
  	// If it's an object, try and guess the 'type', otherwise, let
  	// typeof.
  	if( in_thing == null ){
  	    retval = 'null';
  	}else if( typeof(in_thing) == 'object' ){
  	    
  	    // Look for the 'is_a' property that I should be using.
  	    if( typeof(in_thing._is_a) != 'undefined' ){
  		retval = in_thing._is_a;
  	    }else{
  		if( us.isArray(in_thing) ){
  		    retval = 'array';
  		}else{
  		    retval = 'object';
  		}		
  	    }
  	}else{
  	    retval = typeof(in_thing);
  	}
      }
      return retval;
  }
docs: Return the string best guess for what the input is, null if it
  can't be identified. In addition to the _is_a property convention,
  current core output strings are: 'null', 'array', 'boolean',
  'number', 'string', 'function', and 'object'.
  
  @function
  @name module:bbop-core#what_is
  @param {any} in_thing - the thing in question
  @returns {string} string