Bug fix: RuntimeWarning thrown in BQM unittests
Bug fix: RuntimeWarning thrown in BQM unittests

Dance around deficiencies in `pandas.DataFrame.dot()` implementation to
avoid sorting the index array with mixed types (and throwing `TypeError`
wrapped with `RuntimeWarning`).

Post-mortem:

- [`pandas.DataFrame.dot`](https://github.com/pandas-dev/pandas/blob/a00154dcfe5057cb3fd86653172e74b6893e337d/pandas/core/frame.py#L821)
  calculates a union of indices (variables) of left- and right-hand-side
  DataFrame/Series to align them before multiplying

- [`pandas.Index.union`](https://github.com/pandas-dev/pandas/blob/a00154dcfe5057cb3fd86653172e74b6893e337d/pandas/core/indexes/base.py#L2189)
  returns early (does nothing) if two indices it has to combine are
  equal. If indices differ (even just in order), the method joins them,
  and just for a good measure, [sorts them](https://github.com/pandas-dev/pandas/blob/a00154dcfe5057cb3fd86653172e74b6893e337d/pandas/core/indexes/base.py#L2263)

- by having left-hand-side `DataFrame` the same columns as the
  right-hand-side `Series`, we short-circuit the `union`, and avoid the
  sorting of column names. The sorting of lists (column names) of mixed
  types is not defined in Python3 (results in `TypeError`)

- note: the dot product was correctly calculated, just the order of
  columns was undefined, since they were initialized from a `dict`

oneklc/dimod,oneklc/dimod