wide_to_long orders the column corresponding to the j parameter inconsistently
#### Code Sample

    import pandas as pd
    import numpy as np
    
    # set up dataframes
    
    values1 = np.array([[0.45, 0.3, 'Test1', 2, 6],
                       [0.03, 1.2, 'Test2', 9, 7],
                       [0.7, 4.2, 'Test3', 4, 2]], dtype=object)
    columns1 = ['group1_a1', 'group1_b2', 'Test', 'group2_a1', 'group2_b2']
    stackme1 = pd.DataFrame(values1, columns=columns1)
    
    values2 = np.array([['TX', 'US', 0.45, 0.3, 'Test1', 2, 6],
                        ['MA', 'US', 0.03, 1.2, 'Test2', 9, 7],
                        ['ON', 'CAN', 0.7, 4.2, 'Test3', 4, 2]], dtype=object)
    columns2 = ['State', 'Country', 'group1_a1', 'group1_b2', 'Test', 'group2_a1', 'group2_b2']
    stackme2 = pd.DataFrame(values2, columns=columns2)
    
    # stack them with wide_to_long
    
    stubnames = ['group1', 'group2']
    j = 'a-b-Label'
    suffix = '.+'
    sep = '_'
    
    stacked1 = pd.wide_to_long(stackme1, stubnames=stubnames,
                               j=j, suffix=suffix, sep=sep,
                               i='Test')
    
    stacked2 = pd.wide_to_long(stackme2, stubnames=stubnames,
                               j=j, suffix=suffix, sep=sep,
                               i=['State', 'Country', 'Test'])
    
    print(stacked1)
    #                 group1 group2
    # Test  a-b-Label              
    # Test1 a1          0.45      2
    # Test2 a1          0.03      9
    # Test3 a1           0.7      4
    # Test1 b2           0.3      6
    # Test2 b2           1.2      7
    # Test3 b2           4.2      2

    print(stacked2)
    #                               group1 group2
    # State Country Test  a-b-Label              
    # TX    US      Test1 a1          0.45      2
    #                     b2           0.3      6
    # MA    US      Test2 a1          0.03      9
    #                     b2           1.2      7
    # ON    CAN     Test3 a1           0.7      4
    #                     b2           4.2      2
    
    # expected:
    #                                group1  group2
    # State Country Test  a-b-Label                
    # TX    US      Test1 a1           0.45       2
    # MA    US      Test2 a1           0.03       9
    # ON    CAN     Test3 a1           0.70       4
    # TX    US      Test1 b2           0.30       6
    # MA    US      Test2 b2           1.20       7
    # ON    CAN     Test3 b2           4.20       2

#### Expected Output

The actual and expected outputs are contained as comments in the code snippet.

I expected the `'a-b-Label'` column to either have the the order `a1 a1 a1 b2 b2 b2` or `a1 b2 a1 b2 a1 b2` but `wide_to_long` seems to decide the ordering based on whether you use only one or multiple columns in the `i` parameter. 

#### Output of ``pd.show_versions()``

<details>

INSTALLED VERSIONS
------------------
commit: None
python: 3.5.2.final.0
python-bits: 64
OS: Linux
OS-release: 4.4.0-141-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8

pandas: 0.23.4
pytest: 4.0.1
pip: 18.1
setuptools: 40.6.2
Cython: None
numpy: 1.15.4
scipy: 1.1.0
pyarrow: None
xarray: None
IPython: 7.2.0
sphinx: None
patsy: 0.5.1
dateutil: 2.7.5
pytz: 2018.7
blosc: None
bottleneck: None
tables: 3.4.4
numexpr: 2.6.8
feather: None
matplotlib: 3.0.2
openpyxl: None
xlrd: 1.1.0
xlwt: None
xlsxwriter: 0.7.3
lxml: None
bs4: 4.6.3
html5lib: 1.0.1
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: 0.7.0
</details>
