Rose stem robust keyword match

The matching regexp used in rose-stem to work out project names isn't robust, it's assuming you only have one location{primary} set up for a given URL, and if you've got multiple ones it picks the first. 

This fixes that, and in the process tidies up the logic in _ascertain_project because it's a bit of a tangle. It's now splits into two method calls which call FCM and interpret the output, and then does some further processing to set up the variables we need.

There's a test-battery change because it changes the format of the SOURCE_<project> variable. Rather than producing svn://server/repos/project/trunk as the current version does, it now contains the fcm:project_tr version of the same URL. This is desirable because it reproduces exactly what the user asked for, doesn't break anything because FCM make (the eventual customer for this variable) is happy with either format, and is bad because it's different. It shouldn't have any adverse effect.