Merge branch 'sam_libcxx' into sam_no_ptr_bag
Added single_threaded_shared_mixin_t (for use with intrusive_ptr_t).
Made intrusive_ptr_t have move construction and assignment.
Moved is_joined to env.cc.
Renamed intrusive_ptr_t to counted_t.
Made single_threaded_shared_mixin_t support const types in template parameter.
Added move constructor to scoped.hpp.
Added make_counted.
Added make_scoped_ptr.
Made scoped_ptr_t be a friend of other scoped_ptr_t templated types, made datum_t::as_datum_stream return a scoped_ptr_t as an experiment.
Made table_t::as_datum_stream return a scoped_ptr_t.
Implemented external as_datum_stream for val_t.
Made val_t constructor take a scoped_ptr_t<datum_stream_t>.
Added scoped_ptr_t::init that takes a movee.
Made datum_stream_t be put in a counted_t.
Made datum_t be refcounted.
Made make_scoped_ptr and make_counted forward parameters appropriately.
Made all the func_t be counted_t.
Made table_t be counted_t.
Made val_t be counted_t.