Predict now use std::set instead priority_queue. From my point of
view it is better to maintain set of fixed size and drop predictions
with too low score immideately instead storing them in ordered manner.
Implemented extension class of StarSpace to make things a bit more
pythonic. It is definitely better to have return value instead of
passing parameters to fill to functions. From my point of view, speed is
not changed in case modern C++ compilers handle return of complex values
properly without copying them.