cache information about already ran scripts to speed up script status checks

When running RoundhousE against Azure SQL it's painstakingly slow because of the round trips that RH makes just to check whether specific script has been ran and what's its hash. When you have over hundred scripts this latency really adds up. I've added a simple cache for looking up existing entries in database. 

I've also updated the NHibernate queries to use QueryOver which gives more compile-time safety