BUG: xlim on plots with shared axes (GH2960, GH3490)
Fixes #2960
Fixes #3490. 

Summary of changes:
- for irregular timeseries plots, considers all lines already plotted when calculating xlim
- for plots with secondary_y axis, considers lines on both left and right axes when calculating xlim. There are tests for non-timeseries plots (always worked, but now a test to confirm this), irregular timeseries plots, and regular timeseries plots.

This does not fix #6608, which I now think is a fairly specific/rare case that could always be manually avoided by `x_compat=True`. I will still try and fix that, but it looks a bit uglier and I didn't want to hold back these more important changes.

@TomAugspurger ?
 I see from another PR that @TomAugspurger is travelling... is there anyone else who could take a look at this? Seems like a nice patch to have in 0.14.1.

(admittedly I am travelling also)
 @cpcloud can you take a look?

@rosnfeld pls rebase this
 Rebased. Thanks for reviving this. Looks like @sinhrks is working on similar material in #7459 and #7515.
 cc @sinhrks can you have a look?
 Good catch. I had created test_secondary_y_irregular_ts_xlim to test a secondary_y case but as written it only makes sure that a "primary" (non-secondary) axis is taken into consideration when you plot on the secondary axis, but not the other way around. I've strengthened the test and updated the code.
 @rosnfeld pls rebase
 Rebased.
 one more rebase pls (i just merged bunch of plot stuff)
 Ok, rebased again.
 ok, ping when green
 Travis is green on my fork but will take a while on the main pydata one I think. I am in Asia at the moment and unfortunately need to sleep. :)
 hahha...np...thanks
 Alright, it's green now.
 thanks!
