Rework a bunch of stuff

-- Change the way we store options in Source for better protection
   when updating them through the API
-- Better status code handling in API
-- Most of the way there on Layer PUT call
-- For layer source update, use options spec to validate incoming
   data and set options automatically
-- Clean up recently merged sources and expose options