Fix typo in RegisterAssemblyTypes

GetParentExpressionStatemenmt -> GetParentExpressionStatement
Fix for 'as' and method calls in Autofac registration

In addition, don't do the 'register all types' thing if we don't understand the registration expression.
Ignore non-supported registration expressions

This is so it doesn't fall back to '*everything* is registered by this'
Add some tests

For Register(_ => x as Foo) and Register(_ => MakeFoo())