Amber sql

Hi Alex and Shuang,

Would you take a look at what i've done and (if ok) merge it in ?

I've removed session generated ids, and always give elements (edges and vertices) persistent ids right from the get go. It simplifies committing to persistent data store as well as allowing multiple connections to the same session to see updates made by others.

I've also altered the JDBI mappers to come from a factory like in Banjo as Alex suggested. It's miles better than trying to coordinate via a static variable (which didn't work for multiple session connections anyway)

A few other minor code cleanups - slightly better method naming. Working on the tests, but by no means close to complete yet.