create current_visit in backend if page didn't load first

I've noticed that if you land to an action that use current_visit and you didn't load the application first (ahoy.js didn't post to visits controller because it wasn't loaded) current_visit is nil, but I expect that the visit would be created, and in fact it can be created if didn't exist first. 

So I added a builder module to build the visit and also refactored the VisitsController so it uses that module too.

Let me know what do you think! 

Regards