text: Title: Complete function for missing combinations of data
  Body: # Brief Description
  
  I would like to propose the ``complete`` function, similar to tidyr's ``complete`` function, to get missing combinations of data.
  
  # Example API
  
  ```python
  
  #code idea:
  @pf.register_dataframe_method
  def complete(df, combinations: ..., fill_values = dictionary):
      """
      Expose missing combinations of data in a dataframe.
      """
     #get current positions of the columns
     cols = df.columns
      combo = pd.MultiIndex.from_product([df.loc[:,col].unique() for col in combinations], names = combinations)
      df = (df.set_index(combinations)
               .reindex(combo)
               .reset_index()
               .reindex(columns = cols))
      if fill_values:
          df = df.fillna(fill_values)  
      return df
  
  # example data:
  df = pd.DataFrame({'group': [1, 2, 1],
                     'item_id': [1, 2, 2],
                     'item_name': ['a', 'b', 'b'],
                     'value1': [1, 2, 3],
                     'value2': [4, 5, 6]})
  
  	group	item_id	  item_name  value1	value2
  1	     1 	    1  	        a      1  	    4
  2	     2 	    2  	        b      2  	    5
  3	     1 	    2  	        b      3  	    6
  
  df.complete(combinations = ("group", "item_id", "item_name"))
  
  	group	item_id	item_name	value1	value2
  0	    1	     1	     a	        1.0	4.0
  1	    1	     1	     b	        NaN	NaN
  2	    1	     2	     a	        NaN	NaN
  3	    1	     2	     b	        3.0	6.0
  4	    2	     1	     a	        NaN	NaN
  5	    2	     1	     b	        NaN	NaN
  6	    2	     2	     a	        NaN	NaN
  7	    2	     2	     b	        2.0	5.0
  
  df.complete(combinations = ("group", "item_id", "item_name"), fill_values = {"value1" : 0}))
  
  	group	item_id	item_name	value1	value2
  0	    1	     1	     a	        1.0	4.0
  1	    1	     1	     b	        0.0	NaN
  2	    1	     2	     a	        0.0	NaN
  3	    1	     2	     b	        3.0	6.0
  4	    2	     1	     a	        0.0	NaN
  5	    2	     1	     b	        0.0	NaN
  6	    2	     2	     a	        0.0	NaN
  7	    2	     2	     b	        2.0	5.0
  # more examples below
  # ...
  ```
  