updated Device.PowerOn to use new motion events
added a constructor that takes all dependencies
randomized number of timestamps
added motion event creation methods
improved efficiency of MasterHistory.GetEnumerator
The old version used linq to concat the lists and sort them.  Now the code manually threads together DeviceEvents and NetworkEvents.  Including a new class of events would mean updating the sources array.
added a test to check the length
of the combined master history collection