Make PrngState non-generic

* [pro] simpler API, especially more confortable when using REPL.
* [con] worse performance.
Rebase and merge master.
Remove PrngState of some functions

Although random streams needs a PRNG and a seed to flow,
it is too heavy to keep the PRNG in the flow beacause the PRNG is invariable.
Therefore, it seems good for random stream to get a PRNG earlier than others,
and PrngState is no longer necessary in the workflow.
Change parameter order.
Merge remove-prngstate.
Change parameter order.
Merge with master.
Achieve non-generic generators in most interactive workflows

GeneratorFunction required explicit generics annotation like `let g<'a> = generator<'a> parameter`.
This change successfully removes such noise with introducing discriminated unions to the GeneratorFunction,
and type safty might be enhanced in some dgree.
Unfortunately, it also has some bad side effects:
some onerous wrapping by discriminated union's constructor if you make a GeneratorFunction without `random` computation expression,
and a little performance down.
Make randomSign statically resolved

Originally randomSign has statically resolved type parameter and take no argument.
However, as the result of removing type parameter of GeneratorFunction,
randomSign lost the flexibility.
This change brings back statically resolved type parameter introducing unit argument.
Fix tests.
Merge pull request #40 from kos59125/non-generic

Remove generics of random state from GeneratorFunction