Change USING clause to more explicit ON in several SQL queries

HSQL was doing something really, really stupid when we tried to
use a USING clause before multiple INNER JOINs.  This was causing
`get-edges` to return multiple copies of edges for any node
that had more than one catalog in the database.  Changing to a
more explicit ON clause fixes the problem, so we went ahead and
made this replacement everywhere in the code where we had previously
been using USING.

This also forced us to be more explicit about some of the fields
that we refer to in our SELECT statements.
Change `resource-columns`, et al, into maps that include the table names

In my previous commit I had changed one of the SELECT statements
to include a hard-coded list of fields (w/table names) rather than
letting it refer to the `resource-columns` set that it had been
using.  We decided that this introduced a risk of those getting
out of sync with one another, and that it would be better to
change `resource-columns` into a map that contained the table names
for each field.  This commit does that, and then modifies the other
places in the code that were using the `columns` sets to work with
the new maps.
Merge pull request #474 from cprice-puppet/bug/master/hsql-doesnt-understand-the-word-USING

Change USING clause to more explicit ON in several SQL queries