initial pass at middleware

@kballenegger @nicotaing 
tell me what you think.  I looked into how rack handles middleware and it looked to me like it creates a new instance of the class for every request so I made the modernizer library store the modernizations as a class variable.