result = function(options,extra){
            if(typeof options === 'string'){
                return result.ref(options,extra);
            }
            return result.service(options,extra);
        }
@function
@name module
@desc Creates (or retrieves if it already exists) a module. 
Should be used to avoid service name conflict for large systems.
The module created have all the same methods and properties of Studio object, but running inside of that namespace.
@param {String} moduleName. The module name
@return {function} Studio. A function with all methods and properties fo Studio
@example
var fooModule = Studio.module('foo'); // Create or retrieves a module
var barModule = Studio.module('bar'); // Create or retrieves a module
// Create a service inside foo module, this service calls a service from bar module
fooModule(function fooMethod(){
  var barService = barModule('barMethod');
  return barservice('Hello');
});
// Creates a service inside bar module
barModule(function barMethod(param){
  return param = ' bar';
});
var fooService = fooModule('fooMethod');//Retrieves fooMethod from foo module
fooService().then(function(result){
  console.log(result); // Prints Hello bar'
});