Create Subsets II.cpp

Basic Idea: recursive into the input set and generate subsets
The biggest problem is prohibit duplication. We could achieve that by:
1. sort the input 
2. each time we pick a number, we guarantee that the same number could not be picked again. By doing this, we make sure that if a subset contains n numbers of same value, they must be the first n in sorted input.
Special treatment when S.size () == 0, since leetcode expect [] instead of [[]] as result for empty input set.