A (slightly overambitious) Java port of Ninject