Cleanup exceptions and add http code

- Remove redundant constructors
- always use "code" as an http_status
- fix the default message strings so you can pass nothing into the
  exception constructor and it will work.
- add some basic tests

Partial-bug: #1320136
Co-Authored-By: Nikolay Mahotkin <nmakhotkin@mirantis.com>

Change-Id: I9e21c6d5d39f1203324a37a39e5fd6069062b733
Merge "Cleanup exceptions and add http code"