Re-factored to use gears/di.

gears/di is my new awesome dependency injection container. And now
gears/session is using it. This did mean some breaking changes to the
public api. However I feel like its a great improvement.