More documentation for core classes, and rewrote the Options class to get rid of statics and do a better job detecting and preserving encoding type of values.