Fix decoding OXM match fields whose values/masks does not end on byte boundary

While decoding OXM match fields' value/mask padding wasn't removed
and the resulting value/mask always ended on the byte boundary. To address
this issue new function ofp_utils:uncut_bits/2 is now introduced to remove
the unwanted padding.
(Motivated by FlowForwarding/LINC-Switch#144).
Add utility function for creating #ofp_field{} with mpls_bos field

The ofp_v4_utils module was missing a function for creating an OXM TLV
for MPLS BoS.
(Motivated by FlowForwarding/LINC-Switch#144).
Add sending error to controller when version negotiation fails

There was no error message sent back to the controller when LINC
does not supported protocol version in the first message (that
is supposed to be the hello message).
The function performing the version election was unreadable and in now
refactored. The negotiation process is also more simple now as after
failed negotiation the connection is closed and we don't wait for any
message from the controller (see chapter "Connection Setup" in spec).
(Motivated by FlowForwarding/LINC-Switch#136).
Refactor functions in ofp_client and spec in of_protocol:decode/2

After review it turned out that some functions associated with version
negotiation in ofp_client need refactoring.
Spec of of_protocol:decode/2 also needed update.
(Motivated by FlowForwarding/LINC-Switch#136).
Merge pull request #46 from FlowForwarding/issue136

Add sending error to controller when version negotiation fails
Merge pull request #45 from FlowForwarding/issue144

Fix decoding OXM match fields and add utility for creating MPLS related match field