overwork class hierarchy (data structures, ic, serialization)

this moves a lot of the bit-banging into Streams as well as tries to
utilize Java helpers more. In addition this allowed me to restructure
some of the helper classes.

Splits Information Checking from Secret Sharing

Split up the unit tests a bit (into validations and serializaton)

There are still many "ugly" things. For one, I really hate the
"Convert VSSShare[] to Share[] Array"-Logic (a
vssshares.map(&:inner_share) in rubyesque logic).

Seems like as if my serialization change isn't actually making stuff
faster, seems rather the other direction (but still not too much <=
5-10%)

Add InformationChecking-Interface and test it. Refactor information sharing
and split-out decoder performance tests