Catch NotImplementedError for vnc in the api

When a driver doesn't provide VNC consoles, it will raise
NotImplementedError back up to the API.  Catch this and return a 501.

Change-Id: I6b38be2b3b46dbaecfdb42ea9a139e3b691de193
Sync timeutils from oslo-incubator

Sync the following commit:

ae931a9 Avoid TypeError in is_older_than, is_newer_than

Change-Id: I963c79599fe6731dd84c90ee3f3fbfb02505e045
Partially-implements: blueprint periodic-tasks-to-slave
Related-Bug: #1259383
Merge "Catch NotImplementedError for vnc in the api"
Merge "Sync timeutils from oslo-incubator"