replaces SO explosion implementation
tests combinations with temporary and static array
adds support for temporaries to combinations

(breaks powerset)
only combinations() can make a Combinator
formatting
fixes combinations to work despite clang bug
restores privacy, really
test with init list and combination size of 1
powerset supports temps, error with init lists

a valgrind error occurs betwee the first two combinations of
initializer lists
Fixes init list bug, makes iterators faster

The creation of the combinators happens at the Powersetter level rather
than within the Iterator's constructor.  This fixes the error with the
initializer_lists.
Removes .size() requirement from powerset argument

By just counting the elements when building combinators, there is no
need to call .size() on an unknown type Container
A slight (imo) readbility improvement
labels test cases
breaks line
adds test with temporary
restores test with init list
adds support for temporaries
adds support for init lists
private value constructor
adds test with static array