Fix off-by-one error in hid read buffering
Use boost::regex instead of std::regex

- avoids bug in some libc++ impls that include '/' in a '/(.+)' sub-match used
  in route dispatching
Use vector initialized in constructor for routes