Update to Ninject 3.x

Note that the changes to the Ninject bootstrapper logic come straight from the default Ninject 3 code, so it's not some random thing I cam up with :)