GLRIDB 379 - Browse Project Details

Initial implementation - no routing URLs yet
I like to see functions below variables, especially if the functions use the vars (transient in this case).
Also, for now there is no reason why everything couldn't be put into transient as you are doing here (this was only an emerging concept in my original code).  In my idealized app, things like which tab you are on, current item and search criteria would all be part of .permanent state, which would be bookmarkable (feel free to ignore this for now - bookmarking isn't a currently requested feature).