Chunksize can be calculated without needing an ALSA device instance.
Added a DataSize function to pcm package for calculating size of pcm data given relevant attributes.
Removed ChunkSize from config revid config struct.
Changed NewByteLexer to accept an in rather than a pointer.
Addition of new structs and helper functions for passing around pcm clips/buffers and their formats so that we don't have to import and rely on yobert/alsa code.
Updated any commands and alsa package to use refactored code.
av/device/device.go now contains the AVDevice interface and implementations of this
interface, namely, raspivid, geovision, webcam and file are contained in the packages
av/device/raspivid, av/device/geovision, av/device/webcam and av/device/file
respctively. config.go and testing was also moved to a new package called config.go in
order to remove would be circular dependency between AVDevice implementations and revid.
Modifications were made elsewhere expecting config.Config to be part of the revid package.