WIP: improve code contracts

Note: the full benefit of this comes from having the Code Contracts tools installed. I'll add this to the bootstrap step so you don't have to worry about it.

 - [ ] install Code Contracts as part of bootstrapping the environment
 - [x] moved all the `Contract.Requires` inside method implementing an interface into an abstract class
 - [ ] resolving some more warnings inside Shimmer.Core
 - [ ] applying some suggestions based on CC analysis