sizelimit: port to Python 3

In the tests, use bytes for the request body, since that is what is used by
webob in Python 3.

In RequestBodySizeLimiter.__call__(), do not compare NoneType to an integer: it
is forbidden in Python 3. Instead, properly handle the fact that
req.content_lenght might be None.

Change-Id: I179997789b9e2fcd3f3326e4d724e547c807f195
Move notification point to a better place

Follow-up for I80f325c9be9c171c2dc8d5526570bf64f0f87c78
"notify calling process we are ready to serve"

Xavier Queralt found issue with sending readiness notification from inside
run_service: it returns premature OK in case of multiple service endpoints
in one systemd service like nova-api which by default provides osapi, ec2 and
metadata services.

Instead, send readiness notification before entering wait loop for each
Launcher type.

Change-Id: I69bf10f353f5fecaaf89e537c2d3c46b73e39d36
Implements: blueprint service-readiness
Fix common.scheduler.base_weight.BaseWeigher to be Python3 compatible

Use six.with_metaclass to create the metaclass.

Change-Id: I35402d0ce81799fef23849bbb01fa183e145b954
Merge "sizelimit: port to Python 3"
Merge "Move notification point to a better place"