base_term: some style/doc improvements, and change the way we do SFINAE
on the generic ctor. This is the form we have been using lately and
the Intel compiler seems to work much better with it.