Changing 'mb_substr' call to 'substr': no need for unicode support
Adding caching into ProtocolBind to support creation of unique entries. Added the 'make' bind which is used to create values for binds artificially.

Separated logic from ProtocolMapping into ProtocolObject. Only ProtocolObjects can support default values now.
Adding null checks into getValue(s) calls