Cleaned up the option and result module more intensivly

Made both types implement more standard traits in a nicer way