ENH: get_dummies can accept value and na_value kw
Closes #8028. It is still under work, but want to clarify a point. Currently it  works as:

```
s = pd.Series(['A', 'B', 'A', 'C'])
s
#0    A
#1    B
#2    A
#3    C
# dtype: object

pd.get_dummies(s)
#    A  B  C
#0  1  0  0
#1  0  1  0
#2  1  0  0
#3  0  0  1

pd.get_dummies(s, value='YES', na_value='NO')
#      A    B    C
#0  YES   NO   NO
#1   NO  YES   NO
#2  YES   NO   NO
#3   NO   NO  YES

pd.get_dummies(s, value={'A': 'X', 'B': 'Y', 'C': 'Z'})
#    A  B  C
#0  X  0  0
#1  0  Y  0
#2  X  0  0
#3  0  0  Z
```

And what I'm concerning is cases for list-likes. 

```
# This is natural and compat with replace, because the number of the hole will be the same number as list (one hole in each column).
pd.get_dummies(s, value=['A', 'B', 'A', 'C'])
#    A  B  C
#0  A  0  0
#1  0  B  0
#2  A  0  0
#3  0  0  C

# When we specify na_value and make it compat with replace, behavior should be:
pd.get_dummies(s, na_value=['A', 'B', 'A', 'C'])
#    A  B  C
0  1  A  B
1  A  1  C
2  1  A  B
3  A  C  1

# Or it needs different broadcasting rule?
pd.get_dummies(s, na_value=['A', 'B', 'A', 'C'])
#    A  B  C
#0  1  A  A
#1  B  1  B
#2  1  A  A
#3  C  C  1
```
