Added requirement for the bcmath extension
Added time taken to demo, minor tweaks
Removed type hint on validate() method

Because it would break if an invalid input was given (non-object). The
prefered behaviour is to allow invalid input, and schema validation will
raise an error.