Feature/time

A first step to making the brewpi code hardware-agnostic and easier to test.

Factors delay and time functions into classes which allows for easier abstraction (different hardware) or for mock objects (testing.)  Also convenience methods and dedicated datatypes for variables holding time quantities.

There is no change to program code size. 

				Program Memory Usage 	:	26108 bytes   79.7 % Full
				Data Memory Usage 		:	1179 bytes   57.6 % Full

Before and after applying this feature on Uno Rev 3