Merge provided context with default context

This addresses issue #1950 

My first commit to Hapi so hopefully all is as required. Have included two test cases to ensure this works as expected - 100% test coverage.

Chris
We don't allow functional programming in live code (e.g. outside of configuration or startup). It's too slow.