Colocate tests and components

In the tradition of such classic issues as #215 (closed), we should consider putting tests next to the code they are testing