Introduces a new aggregate for the data access layer, which all commands talk through.
Folds in the manufacture of walls into the data repository.
Reorganises test, to isolate those still using a cast and inspecting the command internals.
Optimises imports.
Removes size() and anyMatch() in favour of external assertion over contents and length.
Adds test for user repo.
Renames InMemoryDataRepo to DataRepositoryImpl
Moves Subscriptions into an internal class for tracking other user a user follows
Removes the WallFactory class and moves the ordering of all timelines for a wall into the datarepo
Adds test for data repository impl that includes verified test for the ordering bug when posts are within a second of each other in nano seconds
Adds QuitCOmmand
Rolls Shell's functions into the Console and removes the Shell class
Renames shell package to console package instead.
Renames dal package to dao package instead to better reflect the pattern in use.
Git weirdness
Further git weirdness
Revert "Further git weirdness"

This reverts commit 66db35878704fbdc1209b20030d9c860194fafff.
Removes artifacts brought on by gradle clean
Renames methods for better readability
Formats code
Refactors FollowRepository -> FollowDAO
Refactors InMemoryFollowDAO -> FollowDAOInMemory
Refactors TimelineRepository -> TimelineDAO