implement move semantics for Library

due to deleting the copy constructor and implementing move constructor, dll ownership is now restricted to one Library instance at a time
change Interpreter to use only Model's public interface

interpreter is no longer friend of model, so it is restricted only to the const accessors, ensuring it doesn't modify the model in any way
whitespace changes

adjusted recently added code to style guidelines