Added BasicObject#switch, which creates a Switch

--HG--
extra : amend_source : 8379efa284008889173dd06e6133e5a7d7540f77
Added Switch#when
Added Switch#else and #output and renamed #value to #input

--HG--
extra : amend_source : c3bbd3603e008e69eb271dfeeb007ec339d28ce5
Refactor Switch and add tests for Switch#matched

--HG--
extra : amend_source : bae8e49c04656b414eeadb6cdefc546b2e5e1f26
Added Switch#when_true and #when_false