text: Title: Forward/Backward Fill
  Body: # Brief Description
  
  I would like to propose a forward/backward fill method, similar to ``fill`` in tidyr. In Pandas, forward/backward fill can be achieved, but you cannot select directions for different columns within a dataframe.
  
  # Example API
      @pf.register_dataframe_method
      def fill(df, columns = ..., directions = sequence of directions(up, down, updown, downup):
          """
          Forward or backward fill on a column or columns of a dataframe.
          """
          df[column] = df[column].ffill() #forward fill will be the default
          return df
  <!-- One of the selling points of pyjanitor is the API. Hence, we guard the API very carefully, and want to
  make sure that it is accessible and understandable to many people. Please provide a few examples of what the API
  of the new function you're proposing will look like. We have provided an example that you should modify. -->
  
  
  ```python
  example data : 
  df = pd.DataFrame(data={'a':[1,2,3,None],'b':[4,5,None,6],'c':[None,None,7,8]})
  
            a	b	c
  0	1.0	4.0	NaN
  1	2.0	5.0	NaN
  2	3.0	NaN	7.0
  3	NaN	6.0	8.0
  
  #downward fill (backward fill in Pandas) on only the `a` column:
  df.fill(columns="a", directions = "down")
  
  # downward fill on  ``a``, upward fill on  ``c`` :
  
  # the idea is the directions will be paired with the columns
  # similar to what exists when sorting multiple columns in Pandas' sort_values 
  # with booleans passed to the ``ascending`` argument
  df.fill(columns=["a", "c"], directions = ["down", "up"])
  
  
  
  # currently in Pandas, ffill and bfill are applied to all the columns that have null values, 
  # you cannot select which columns to be forward or backward filled.
  ```
  
  Still undecided on the name, as I do not feel it clearly conveys what it should do without reading the function description. 