Improved error messages for incorrect parameters.
Added an argument selector

It returns the "correct" argument out of two.
Using detail::arg_select to reduce number of constructors
Using arg_selector for select
Migrated remove and update to using arg_selector
Merge branch 'feature/statement_constructors' into develop
Fixed compile-error for parameter

(need to do the same for other value types, too)