text: Title: Add index selection to JointPlotVisualizer
  Body: The joint plot visualizer shows the relationship between a single feature in `X` with the target `y`. Right now the choices are for a user to pass in a name for a column to select from a DataFrame or to pass in a single column array. We should expand this to allow the user to pass an index to ensure that different data types can be passed to the visualizer. 
  
  ### Proposal/Issue
  
  Currently, the plot accepts as hyperparameters `feature` (soon to be `column`) and `target`. Both `feature`/`column` and `target` act as x and y labels in the visualizer respectively (and in fact, `target` has no purpose other than to act as a label). The `feature`/`column` attribute, however, acts as a selection mechanism to describe what to plot against the target from the 2D array, `X` passed into fit. Right now the options are:
  
  1. Pass in a string to identify a column in a DataFrame 
  2. Pass in None and a single column `X` 
  
  We should expand this to include:
  
  1. Pass in an int - select the column by index and label with the id 
  2. If `target` is specified but not `y`, then use `target` similarly to `feature`/`column` to select from `X` 
  3. Test use cases with matrix, python list, structured array, and data frame 
  
  **Caveats**: I think 2. requires some discussion, which we should undertake during the PR. I'm not sure this makes a lot of sense, but would be useful. Potentially changing the names of the visualizer parameters would help make this behavior more clear. 
  