Made shape abstract

Added some functions to shape and made it abstract
Changed rectangle and main