StatusStorage::SQLite: in-memory DB is now not supported. This is because current implementation does not keep the database handle in the object. It initiates the connection every time it is required. So in-memory DB (:memory:) cannot persist.
StatusStorage::SQLite: bug fix: ack_state candidates are {any,unacked,acked}, not {all,unacked,acked}.
StatusStorage::SQLite: bug fix: in _create_max_id_condition(): left operand for repetition operator (x) must be enclosed by parenthesis if you want a list result. The bind values for SQL::Maker::Condition::add_raw() must be enclosed in [].
StatusStorage::SQLite: bug fix: ack_statuses(): ids are either undef, a status ID or array-ref of status IDs. It must not be a status object.
StatusStorage::SQLite: bug fix: put_statuses() throws an exception when any of the given statuses lacks its ID.
Test::StatusStorage: change spec of test_storage_truncation(). Now it tests double-limit truncation (with soft_max and hard_max). It now clearly states that the limit is applied to timelines individually.
StatusStorage::Memory: revise POD. max_status_num is for limit per timeline, not for the whole storage. Its default value is now 4000. It does not make sense to be 2^x
StatusStorage::SQLite: implement the truncation feature. Pass the test.
t/StatusStorage_SQLite.t: remove the reminder because the todo cases are already covered by the Test:StatusStorage tests.
Update build_requires of Build.PL.
xt/Input_Twitter.net.t: remove the line of 'use Test::MockObject::Extends' because it's not used.