code: function CliArguments(argsArray)
  {
      let obj;
  
      if (!(this instanceof CliArguments))
      {
          obj = new CliArguments(argsArray);
  
          return obj;
      }
      const _args = argsArray.slice();
      /**
       * Gets the arguments.
       *
       * @return     {array of strings}  A copy of the _args property.
       */
  
      this.getArgs = () =>
      {
          return _args.slice();
      };
  }
docs: @annotation - this is deliberatly an immutable implementation to try out functional
  programming techniques
  
  CliArguments constructor. Wraps the arguments from a cli options arg array and wraps the
  arguments. Provide a single getter to access the array
  
  @class      CliArguments         - is a class that can be instantiated with or withou the use of the
  new keyword. It is a immutable container for the cli arguments
  after parsing.
  @param      {array of strings}   argsArray  The arguments array
  @return     {CliArguments}       new CliArguments object