在C代码层面实现字符串流的数据类型

其实比起在这个层面实现，最好的办法是在Lisp代码的级别进行实现，而且尽可能地使
用诸如重载这样的特性来实现，避免在C代码中一个函数根据不同的类型进行显式地派发，
让一个函数做一件事情。
在read_object_from_string的一系列调用中移除fmemopen的引用

并相应地修改get_char、unget_char和peek_char。
将几个函数中的input_file参数重命名
Fix a bug

添加了ENVIRONMENT类型后，忘记在lt_types中增加相应的行。