Updated library building to allow for appending object files and libraries

This is useful for cases where you want to build a static library that is
a superset of several smaller libraries. Or if you have a c++ library that
wraps a c library this allows you to include the c library in the c++
library so that you do not have to supply both to the linker.