[Gendarme] Improve EnsureLocalDisposable rule

Don't complain that dispose is not guaranteed if we return an
object of that type. This catches the case where we dispose an
object in a catch block that we otherwise return.
[Gendarme] Deal with field initializers

When a field gets assigned a disposable object created with
initializers we shouldn't report this as failure.