ISPN-4329 Protostream invokes TagHandler.onStart() more than once

Also make MessageContext non-abstract so it can be directly reused without extending it.