Added WallViewing  - includes refactoring to support the wall.

Command Parser refactored to make the switch on the kind of command more clean.
Timeline promoted to a first class domain model concept, instead of just being a list of posts,
allows for cleaner merging when viewing the wall
User added to Post so it may be displayed in the wall
Unwip'd the last scenario, which showed that there is a problem of Post ordering when using milliseconds, therefore change to nano seconds for Post timestamps instead.
Tightened the console expectations for wall printing to include the timestamp
Refactor shell for clean-ness of intent on submit command.
internalised the use of streams in the timeline to make the external reading of posts a  nicer, more direct api
Made variables into locals where appropriate
Rename forEach to infer ordering
Pulls Subscriptions out as a first class concept.

Made code slightly more terse by using the shorthand notation for functional calls
Removes ShellTest as this is covered by cucumber scenarios.
Refactors Wall creation into its own class.

Introduces Wall as a first class domain object.
Moves Post into domain package.
Moves User into domain package.
Moves Wall into domain package.
Moves Timeline into domain package.
Moves InMemoryRepo into dal package.
Moves FollowRepo into dal package.
Moves InMemoryTimelineRepo  into dal package.
Moves InMemoryUserRepo  into dal package.
Moves Subscription into domain package.
Moves InMemoryUserRepo into dal package.