C++: Deal with 'using' statements when calculating scope

* semantic/bovine/c.el (semantic-ctxt-scoped-types): Go through all
  tags around point and search them for using statements.  Before, we
  skipped the last one thinking that it would have to be function, but
  it could also be a type.

* semantic/scope.el (semantic-completable-tags-from-type): When
  creating the list of completable types, pull in types which are
  referenced through 'using' statements.

* tests/cedet/semantic/tests/testusing.cpp:
* tests/cedet/semantic/tests/testusing.hh: Add tests for the above.
cedet/semantic/format.el (semantic-format-tag-prototype-default): use concat only for strings

this prevents from arising the error when we pass the cons into it
merge from master