Moar changes

Adds Choose() to table, which treats mapped values as weights, and
returns a single string.

Adds a few error messages to Item for better problem detection
Ensures count is always 1 or greater.

Adds an overload for List<T>.Choose(List<float> weights) to match the
one that takes a float[]
Adds the necessary List<float>.WeightedChoose() extension

Adds string.FromLast(char c)

Adds ReflectionF which has a bunch of extensions for reflection classes,
including Type.Summary(), which returns a summary of all fields,
properties, and methods contained in the type, currently as a 'class
shell'

Still WIP and needs testing.