Refactored codebase to be more generic and share code with other AWS CloudWatch plugins.  Also merged in changes made to the plugin in the official Boundary repo.
Worked around the still-problematic Boundary Relay timeout issue by having a dedicated subprocess output bogus metrics every so often.
CloudWatch can't return more than 1,440 data points in a single call.  We now split calls that would return more than that into a number of sub-calls, and combine the returned data.