py: Add mp_obj_str_builder_end_with_len.

This allows to create str's with a smaller length than initially asked
for.
stmhal: Add USB_VCP class/object, for direct USB VCP control.

Before, pyb.stdin/pyb.stdout allowed some kind of access to the USB VCP
device, but it was basic access.

This patch adds a proper USB_VCP class and object with much more control
over the USB VCP device.  Create an object with pyb.USB_VCP(), then use
this object as if it were a UART object.  It has send, recv, read,
write, and other methods.  send and recv allow a timeout to be specified.

Addresses issue 774.