Added the ability for a toolset to set a prefix for a target type, e.g., a "lib" prefix for a LIB type. This was implemented by generalizing the existing capability to set a target file suffix. * build/type.jam (set-generated-target-suffix): Refactored to forward call to new set-generated-target-ps rule. (change-generated-target-suffix): Refactored to forward call to new change-generated-target-ps rule. (generated-target-suffix-real): Renamed to generated-target-ps-real with argument indicating prefix or suffix. (generated-target-suffix): Refactored to forward call to new generated-target-ps rule. (generated-target-ps): New helper rule - returns assigned prefix or suffix acccording to prefix/suffix argument. (set-generated-target-prefix): New rule sets target type prefix. (change-generated-target-prefix): New rule changes target type prefix. (generated-target-prefix): New rule returns target type prefix. (set-generated-target-ps): New helper rule - sets prefix/suffix for a target type. (change-generated-target-ps): New helper rule - changes prefix/suffix for a target type. * build/virtual-target.jam (add-prefix-and-suffix): Invokes new type.generated-target-prefix to get assigned prefix. Still some unfinished business with unix handling - suggest moving commented "hacky" stuff to unix toolset if that makes sense. * Formal test case not yet added. Was tested with my custom hptns toolset.