Various fixes thanks to RFC 49

RFC 49, namely [Bounds on object and generic types](https://github.com/nikomatsakis/rfcs/blob/master/active/0049-bounds-on-object-and-generic-types.md) breaks lots of stuff.

Also, trying to shut up the linter which is panicing as well.